# syntax=docker/dockerfile:1

##
## Build
##
FROM golang:alpine AS build

WORKDIR /app

RUN apk update
RUN apk add --update gcc g++
RUN apk add --update python3
RUN apk add --update npm

COPY package.json ./package.json
RUN npm i

COPY ./src ./src
COPY ./gulpfile.js ./gulpfile.js
COPY ./webpack.config.js ./webpack.config.js
RUN npx gulp build

COPY go.mod .
COPY go.sum .
RUN go mod download
RUN go install github.com/mattn/go-sqlite3

COPY . ./
RUN ls -l
RUN mkdir bin
RUN go build -o bin/thomasshop

##
## Deploy
##
FROM alpine:latest

WORKDIR /

COPY --from=build /app/bin/thomasshop /bin
COPY --from=build /app/dist /dist
COPY --from=build /app/templates /templates
RUN echo "#!/bin/ash" > /run.sh
RUN echo "cp -r /dist/* /outdist" >> /run.sh
RUN echo "exec /bin/thomasshop" >> /run.sh
RUN chmod +x /run.sh

ENTRYPOINT ["/run.sh"]
