mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2024-11-25 21:26:40 +00:00
build and bundle admin console + web assets (#119)
This commit is contained in:
parent
2c2dbe318e
commit
fddacdd1a8
32
Dockerfile
32
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 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
|
||||||
|
|
Loading…
Reference in a new issue