This commit is contained in:
42
Dockerfile
Normal file
42
Dockerfile
Normal file
@@ -0,0 +1,42 @@
|
||||
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 --from=gobuilder /opt/app-root/db/migrations /opt/app-root/migrations
|
||||
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"]
|
||||
Reference in New Issue
Block a user