Docker
脚手架根据你在 gocronx init 时的选择生成 docker-compose.yaml。
可用服务
| 服务 | 端口 | 何时包含 |
|---|---|---|
| Redis | 6379 | 使用 --redis 或向导中启用 |
| MySQL | 3306 | --db mysql |
| PostgreSQL | 5432 | --db postgres |
使用
bash
# 启动所有配置的服务
docker compose up -d
# 仅启动 Redis
docker compose up -d redis
# 停止
docker compose down
# 停止并删除数据卷
docker compose down -v默认凭据
| 服务 | 用户 | 密码 | 数据库 |
|---|---|---|---|
| MySQL | root | 123456 | (项目名) |
| PostgreSQL | postgres | 123456 | (项目名) |
| Redis | — | (无) | 0 |
WARNING
这些是开发默认值,生产环境务必修改。
生产 Dockerfile
多阶段构建示例:
dockerfile
# 构建后端
FROM golang:1.23-alpine AS backend
WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN go build -o server ./cmd/server/
# 构建前端
FROM node:20-alpine AS frontend
WORKDIR /app/web
COPY web/package.json web/pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY web/ .
RUN pnpm build
# 最终镜像
FROM alpine:3.19
WORKDIR /app
COPY --from=backend /app/server .
COPY --from=frontend /app/web/dist ./web/dist
COPY config.yaml .
EXPOSE 8080
CMD ["./server"]