update
This commit is contained in:
30
Dockerfile
Normal file
30
Dockerfile
Normal file
@@ -0,0 +1,30 @@
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
FROM --platform=$BUILDPLATFORM node:20-alpine AS frontend-builder
|
||||
WORKDIR /app/frontend
|
||||
COPY frontend/package.json frontend/pnpm-lock.yaml ./
|
||||
RUN corepack enable && pnpm install --frozen-lockfile
|
||||
COPY frontend/ ./
|
||||
RUN pnpm build
|
||||
|
||||
FROM --platform=$BUILDPLATFORM golang:1.24 AS backend-builder
|
||||
WORKDIR /app/backend
|
||||
COPY backend/go.mod backend/go.sum ./
|
||||
RUN go mod download
|
||||
COPY backend/ ./
|
||||
COPY --from=frontend-builder /app/frontend/dist ./web
|
||||
ARG TARGETARCH
|
||||
RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH:-amd64} go build -trimpath -ldflags="-s -w" -o /out/shooting-event .
|
||||
|
||||
FROM --platform=$TARGETPLATFORM alpine:3.21
|
||||
RUN addgroup -S app && adduser -S app -G app && apk add --no-cache ca-certificates
|
||||
WORKDIR /app
|
||||
COPY --from=backend-builder /out/shooting-event /app/shooting-event
|
||||
COPY --from=backend-builder /app/backend/web /app/web
|
||||
RUN mkdir -p /app/data && chown -R app:app /app
|
||||
USER app
|
||||
ENV PORT=8080
|
||||
ENV DB_PATH=/app/data/shooting.db
|
||||
ENV WEB_DIR=/app/web
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["/app/shooting-event"]
|
||||
Reference in New Issue
Block a user