FROM golang:1.17-alpine3.15 AS go_builder RUN apk --no-cache add \ build-base \ imagemagick6 \ imagemagick6-dev WORKDIR /go/src/app COPY go.* ./ ENV CGO_ENABLED=1 ENV CGO_CFLAGS_ALLOW=-Xpreprocessor ENV GOPROXY=https://proxy.golang.org RUN go mod download COPY . ./ RUN go build -o app ./frontend FROM node:alpine as asset_builder RUN apk --no-cache add \ build-base \ python3 WORKDIR /app COPY frontend/package* /app/ RUN npm ci COPY frontend/assets /app/assets RUN npm run build FROM alpine:3.15 RUN apk --no-cache add imagemagick6 RUN addgroup -g 1000 -S app && \ adduser -u 1000 -G app -S app COPY --from=go_builder /go/src/app / COPY frontend/templates /templates COPY frontend/migrations /migrations COPY --from=asset_builder /app/assets /assets USER app ENTRYPOINT ["/app"]