commit fddacdd1a857b4925a67ef5a54ee18004306838b parent 2c2dbe318e2d01f4d7dbbade3970684e4f0b9f6b Author: Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com> Date: Tue, 27 Jul 2021 14:45:27 +0200 build and bundle admin console + web assets (#119) Diffstat:
M | Dockerfile | | | 32 | +++++++++++++++++++++++++++++--- |
1 file changed, 29 insertions(+), 3 deletions(-)
diff --git a/Dockerfile b/Dockerfile @@ -1,4 +1,5 @@ -FROM golang:1.16.4-alpine3.13 AS builder +# STEP ONE: build the GoToSocial binary +FROM golang:1.16.4-alpine3.13 AS binary_builder RUN apk update && apk upgrade --no-cache RUN apk add git @@ -23,15 +24,40 @@ ADD build.sh /go/src/github.com/superseriousbusiness/gotosocial/build.sh # do the build step RUN ./build.sh +# STEP TWO: build the web assets +FROM node:16.5.0-alpine3.11 AS web_builder +RUN apk update && apk upgrade --no-cache + +COPY web /web +WORKDIR /web/source + +RUN yarn install +RUN node build.js + +# STEP THREE: bundle the admin webapp +FROM node:16.5.0-alpine3.11 AS admin_builder +RUN apk update && apk upgrade --no-cache +RUN apk add git + +RUN git clone https://github.com/superseriousbusiness/gotosocial-admin +WORKDIR /gotosocial-admin + +RUN npm install +RUN node index.js + +# STEP FOUR: build the final container FROM alpine:3.13 AS executor RUN apk update && apk upgrade --no-cache # copy over the binary from the first stage RUN mkdir -p /gotosocial/storage -COPY --from=builder /go/src/github.com/superseriousbusiness/gotosocial/gotosocial /gotosocial/gotosocial +COPY --from=binary_builder /go/src/github.com/superseriousbusiness/gotosocial/gotosocial /gotosocial/gotosocial # copy over the web directory with templates etc -COPY web /gotosocial/web +COPY --from=web_builder web /gotosocial/web + +# copy over the admin directory +COPY --from=admin_builder /gotosocial-admin/public /gotosocial/web/assets/admin # make the gotosocial group and user RUN addgroup -g 1000 gotosocial