build and bundle admin console + web assets (#119)

This commit is contained in:
Tobi Smethurst 2021-07-27 14:45:27 +02:00 committed by GitHub
parent 2c2dbe318e
commit fddacdd1a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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 update && apk upgrade --no-cache
RUN apk add git RUN apk add git
@ -23,15 +24,40 @@ ADD build.sh /go/src/github.com/superseriousbusiness/gotosocial/build.sh
# do the build step # do the build step
RUN ./build.sh 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 FROM alpine:3.13 AS executor
RUN apk update && apk upgrade --no-cache RUN apk update && apk upgrade --no-cache
# copy over the binary from the first stage # copy over the binary from the first stage
RUN mkdir -p /gotosocial/storage 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 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 # make the gotosocial group and user
RUN addgroup -g 1000 gotosocial RUN addgroup -g 1000 gotosocial