Skip to content

Docker

脚手架根据你在 gocronx init 时的选择生成 docker-compose.yaml

可用服务

服务端口何时包含
Redis6379使用 --redis 或向导中启用
MySQL3306--db mysql
PostgreSQL5432--db postgres

使用

bash
# 启动所有配置的服务
docker compose up -d

# 仅启动 Redis
docker compose up -d redis

# 停止
docker compose down

# 停止并删除数据卷
docker compose down -v

默认凭据

服务用户密码数据库
MySQLroot123456(项目名)
PostgreSQLpostgres123456(项目名)
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"]