init
This commit is contained in:
27
Dockerfile
Normal file
27
Dockerfile
Normal file
@@ -0,0 +1,27 @@
|
||||
# Multi-stage build: Angular -> Go -> Runtime
|
||||
|
||||
FROM node:22-slim AS frontend
|
||||
WORKDIR /app/ui
|
||||
COPY ui/package*.json ./
|
||||
RUN npm install --no-audit --no-fund
|
||||
COPY ui .
|
||||
RUN npm run build
|
||||
|
||||
FROM golang:1.23 AS backend
|
||||
WORKDIR /app/back
|
||||
COPY back/go.mod back/go.sum ./
|
||||
RUN go mod download
|
||||
COPY back .
|
||||
# Copy built frontend into embed directory BEFORE go build
|
||||
RUN mkdir -p /app/back/cmd/public
|
||||
COPY --from=frontend /app/ui/dist/project-front/browser/ /app/back/cmd/public/
|
||||
RUN CGO_ENABLED=0 GOOS=linux go build -o /app/knocker-serve .
|
||||
|
||||
FROM gcr.io/distroless/base-debian12
|
||||
WORKDIR /app
|
||||
ENV GO_KNOCKER_SERVE_PORT=8888
|
||||
COPY --from=backend /app/knocker-serve /app/knocker-serve
|
||||
EXPOSE 8888
|
||||
USER nonroot:nonroot
|
||||
ENTRYPOINT ["/app/knocker-serve", "serve"]
|
||||
|
Reference in New Issue
Block a user