From 45567e274afb0504a32d8f2911e73568ddda3e39 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Tue, 21 Sep 2021 14:53:09 +0200 Subject: [PATCH] Modernize Dockerfile --- .dockerignore | 2 +- Dockerfile | 31 +++++++++++++++++++++++++------ 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.dockerignore b/.dockerignore index 8ac2e809..b378a7a7 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,4 +3,4 @@ bin .idea selfcert -gui \ No newline at end of file +gui/dist-prod \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 7c1bafe1..a93a630f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,30 @@ -FROM golang:1.15-alpine as builder -COPY . /go/src/github.com/documize/community +FROM node:lts-alpine as frontbuilder +WORKDIR /go/src/github.com/documize/community/gui +COPY ./gui /go/src/github.com/documize/community/gui +RUN npm --network-timeout=100000 install +RUN npm run build -- --environment=production --output-path dist-prod --suppress-sizes true + +FROM golang:1.17-alpine as builder WORKDIR /go/src/github.com/documize/community -RUN env GOOS=linux GOARCH=amd64 GODEBUG=tls13=1 go build -mod=vendor -o bin/documize-community-linux-amd64 ./edition/community.go +COPY . /go/src/github.com/documize/community +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/assets /go/src/github.com/documize/community/edition/static/public/assets +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/codemirror /go/src/github.com/documize/community/edition/static/public/codemirror +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/prism /go/src/github.com/documize/community/edition/static/public/prism +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/sections /go/src/github.com/documize/community/edition/static/public/sections +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/tinymce /go/src/github.com/documize/community/edition/static/public/tinymce +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/pdfjs /go/src/github.com/documize/community/edition/static/public/pdfjs +COPY --from=frontbuilder /go/src/github.com/documize/community/gui/dist-prod/*.* /go/src/github.com/documize/community/edition/static/ +COPY domain/mail/*.html /go/src/github.com/documize/community/edition/static/mail/ +COPY core/database/templates/*.html /go/src/github.com/documize/community/edition/static/ +COPY core/database/scripts/mysql/*.sql /go/src/github.com/documize/community/edition/static/scripts/mysql/ +COPY core/database/scripts/postgresql/*.sql /go/src/github.com/documize/community/edition/static/scripts/postgresql/ +COPY core/database/scripts/sqlserver/*.sql /go/src/github.com/documize/community/edition/static/scripts/sqlserver/ +COPY domain/onboard/*.json /go/src/github.com/documize/community/edition/static/onboard/ +RUN env GODEBUG=tls13=1 go build -mod=vendor -o bin/documize-community ./edition/community.go # build release image -FROM alpine:3.10 -RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/* -COPY --from=builder /go/src/github.com/documize/community/bin/documize-community-linux-amd64 /documize +FROM alpine:3.14 +RUN apk add --no-cache ca-certificates +COPY --from=builder /go/src/github.com/documize/community/bin/documize-community /documize EXPOSE 5001 ENTRYPOINT [ "/documize" ]