feat(deploy): add containerized deployment configuration and scripts

- Add Dockerfile for frontend and server services
- Add Docker Compose configs (standard and offline mode)
- Add nginx.conf for admin-web service
- Add deploy scripts: package.sh (packaging) and load-and-start.sh (startup)
- Add deploy/config.yaml, .env.example, and prompts.yml configurations
- Add image management design specification doc
This commit is contained in:
2026-04-15 21:27:15 +08:00
parent 1538a12042
commit 0a3558fc51
11 changed files with 1797 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# syntax=docker/dockerfile:1
# ─── Stage 1: Build Go binaries ───────────────────────────────────────────────
FROM golang:1.22-alpine AS builder
ARG SERVICE=tenant-api
RUN apk --no-cache add ca-certificates git
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -trimpath -ldflags="-s -w" \
-o /bin/service ./cmd/${SERVICE}
# ─── Stage 2: Migration image (bundles SQL files + migrate binary) ─────────────
FROM migrate/migrate:v4.18.1 AS migrate-tool
FROM alpine:3.19 AS migrate
RUN apk --no-cache add ca-certificates
COPY --from=migrate-tool /usr/local/bin/migrate /usr/local/bin/migrate
COPY migrations/ /migrations/
COPY migrations_monitoring/ /migrations_monitoring/
ENTRYPOINT ["/usr/local/bin/migrate"]
# ─── Stage 3: Runtime image ────────────────────────────────────────────────────
FROM alpine:3.19 AS runtime
RUN apk --no-cache add ca-certificates tzdata
WORKDIR /app
COPY --from=builder /bin/service /app/service
COPY configs/ /app/configs/
EXPOSE 8080
ENTRYPOINT ["/app/service"]