Dockerfile
Rama master · réplica de lectura del repositorio original.
ARG APP_VERSION=dev
FROM node:26-alpine AS ui
RUN npm install --global pnpm@11.24.0
WORKDIR /src/web
COPY web/package.json web/pnpm-lock.yaml web/pnpm-workspace.yaml ./
RUN pnpm install --frozen-lockfile
COPY web/ ./
RUN pnpm run build
FROM golang:1.27-alpine AS backend
RUN apk add --no-cache build-base
WORKDIR /src
COPY backend/go.mod backend/go.sum ./
RUN go mod download
COPY backend/ ./
RUN CGO_ENABLED=1 go build -trimpath -ldflags="-s -w" -o /out/certvault .
FROM alpine:3.24
ARG APP_VERSION
RUN apk add --no-cache ca-certificates tzdata && addgroup -S -g 10001 certvault && adduser -S -D -H -u 10001 -G certvault certvault
COPY --from=backend /out/certvault /usr/local/bin/certvault
COPY --from=ui /src/web/dist /app/ui
RUN mkdir /data && chown certvault:certvault /data
USER certvault
ENV APP_VERSION=${APP_VERSION}
EXPOSE 8080
VOLUME ["/data"]
ENTRYPOINT ["/usr/local/bin/certvault"]