Files
vantablackTea 5e30761742
CI / Go (build + vet + test) (push) Canceled after 0s
CI / Web (build + lint) (push) Canceled after 0s
feat: web push — VAPID build-arg + enable-notifications button
2026-09-28 12:51:08 +03:00

31 lines
863 B
Docker

# --- Frontend build stage ---
FROM node:22-alpine AS web
WORKDIR /build/web
ARG VITE_VAPID_PUBLIC_KEY
ENV VITE_VAPID_PUBLIC_KEY=$VITE_VAPID_PUBLIC_KEY
COPY web/package.json web/package-lock.json ./
RUN npm ci
COPY web/ .
RUN npm run build
# --- Go build stage ---
FROM golang:1.27-alpine AS api
WORKDIR /build
COPY server/go.mod server/go.sum ./
RUN go mod download
COPY server/ .
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/api ./cmd/api
# --- Runtime stage ---
FROM alpine:3.20 AS runtime
RUN adduser -D -u 10001 app \
&& mkdir -p /data/media /app/web \
&& chown -R app:app /data /app
WORKDIR /app
COPY --from=api --chown=app:app /out/api /app/api
COPY --from=web --chown=app:app /build/web/dist /app/web
USER app
ENV MESSENGER_STATIC_DIR=/app/web \
MESSENGER_MEDIA_DIR=/data/media
EXPOSE 8080
ENTRYPOINT ["/app/api"]