42 lines
1.6 KiB
Docker
42 lines
1.6 KiB
Docker
FROM golang:1.25.6 AS gobuilder
|
|
|
|
WORKDIR /opt/app-root
|
|
|
|
COPY Makefile .tool-versions go.mod go.sum ./
|
|
RUN --mount=type=tmpfs,target=/tmp \
|
|
--mount=type=cache,target=/go/pkg/mod,id=calculate-negative-points-go1256-mod-cache \
|
|
--mount=type=cache,target=/root/.cache/go-build,id=calculate-negative-points-go1256-build-cache \
|
|
make mod
|
|
|
|
COPY . /opt/app-root/
|
|
|
|
RUN --mount=type=tmpfs,target=/tmp \
|
|
--mount=type=cache,target=/go/pkg/mod,id=calculate-negative-points-go1256-mod-cache \
|
|
--mount=type=cache,target=/root/.cache/go-build,id=calculate-negative-points-go1256-build-cache \
|
|
CGO_ENABLED="0" BINDIR="/usr/local/bin" make clean; CGO_ENABLED="0" BINDIR="/usr/local/bin" make build
|
|
|
|
FROM oven/bun:1.3.8 AS bunbuilder
|
|
|
|
ENV NODE_ENV="production"
|
|
|
|
COPY . /opt/app-root
|
|
|
|
WORKDIR /opt/app-root/frontend
|
|
|
|
RUN --mount=type=tmpfs,target=/tmp --mount=type=tmpfs,target=/var/log \
|
|
--mount=type=cache,target=/usr/local/share/.cache/yarn,id=calculate-negative-points-bun138-build-share-yarn-cache \
|
|
--mount=type=cache,target=/opt/app-root/frontend/node_modules,id=calculate-negative-points-bun138-build-app-node-modules \
|
|
bun install; bunx --bun vite build
|
|
|
|
FROM golang:1.25.6 AS final
|
|
|
|
WORKDIR $NON_ROOT_USER_HOME
|
|
COPY --from=bunbuilder /opt/app-root/public /opt/app-root/public
|
|
COPY --from=gobuilder /usr/local/bin/calculate_negative_points /usr/local/bin/calculate_negative_points
|
|
COPY --from=gobuilder /opt/app-root/internal/views /opt/app-root/views
|
|
COPY config/ /opt/app-root/config
|
|
|
|
ENV TZ=America/Detroit
|
|
EXPOSE 3000
|
|
CMD ["/usr/local/bin/calculate_negative_points", "--listen", "0.0.0.0:3000"]
|