32 lines
666 B
Docker
32 lines
666 B
Docker
FROM node:24-alpine AS frontend_dependencies
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
ADD static/app/package.json .
|
|
ADD static/app/yarn.lock .
|
|
RUN yarn install --frozen-lockfile
|
|
|
|
FROM frontend_dependencies AS frontend_build
|
|
ADD static/app .
|
|
RUN yarn build
|
|
|
|
FROM golang:1.26-alpine AS backend_dependencies
|
|
RUN apk add git make
|
|
RUN mkdir -p /app
|
|
WORKDIR /app
|
|
ADD go.mod .
|
|
ADD go.sum .
|
|
RUN go mod download
|
|
|
|
FROM backend_dependencies AS backend_build
|
|
ADD . .
|
|
RUN rm -rf static/app/dist
|
|
COPY --from=frontend_build /app/dist /app/static/app/dist
|
|
RUN make build
|
|
|
|
FROM alpine:latest AS final
|
|
|
|
FROM final
|
|
EXPOSE 8000
|
|
EXPOSE 9000
|
|
COPY --from=backend_build /app/bin/app /app
|
|
CMD ["/app"] |