diff --git a/Dockerfile b/Dockerfile index 48324a45f..184be41cd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,7 @@ # syntax=docker/dockerfile:1.3 # Dockerfile reference: https://docs.docker.com/engine/reference/builder/ -# stage 1: generate up-to-date swagger.yaml to put in the final container -FROM --platform=${BUILDPLATFORM} golang:1.23-alpine AS swagger - -COPY go.mod /go/src/github.com/superseriousbusiness/gotosocial/go.mod -COPY go.sum /go/src/github.com/superseriousbusiness/gotosocial/go.sum -COPY cmd /go/src/github.com/superseriousbusiness/gotosocial/cmd -COPY internal /go/src/github.com/superseriousbusiness/gotosocial/internal -COPY vendor /go/src/github.com/superseriousbusiness/gotosocial/vendor - -WORKDIR /go/src/github.com/superseriousbusiness/gotosocial -RUN ./vendor/github.com/go-swagger/go-swagger/cmd/swagger generate spec -o /go/src/github.com/superseriousbusiness/gotosocial/swagger.yaml --scan-models - -# stage 2: generate the web/assets/dist bundles +# stage 1: generate the web/assets/dist bundles FROM --platform=${BUILDPLATFORM} node:18-alpine AS bundler COPY web web @@ -22,7 +10,7 @@ RUN yarn --cwd ./web/source install && \ yarn --cwd ./web/source build && \ rm -rf ./web/source -# stage 3: build the executor container +# stage 2: build the executor container FROM --platform=${TARGETPLATFORM} alpine:3.20 as executor # switch to non-root user:group for GtS @@ -45,7 +33,7 @@ COPY --chown=1000:1000 gotosocial /gotosocial/gotosocial # copy over the web directories with templates, assets etc COPY --chown=1000:1000 --from=bundler web /gotosocial/web -COPY --chown=1000:1000 --from=swagger /go/src/github.com/superseriousbusiness/gotosocial/swagger.yaml web/assets/swagger.yaml +COPY --chown=1000:1000 ./web/assets/swagger.yaml /gotosocial/web/assets/swagger.yaml VOLUME [ "/gotosocial/storage", "/gotosocial/.cache" ] ENTRYPOINT [ "/gotosocial/gotosocial", "server", "start" ]