Docker 部署

Dockerfile

多阶段构建,最终镜像只包含静态二进制和 ca-certificates:

  • 第一阶段(builder):编译 Go 程序,CGO_ENABLED=0 静态链接
  • 第二阶段:alpine 最小镜像,只拷贝二进制

镜像大小约 10-15MB。

构建命令:

docker build -t hr-backend .

运行:

docker run -d \
  -p 8080:8080 \
  -e DB_HOST=your-db-host \
  -e DB_PASSWORD=your-password \
  -e REDIS_HOST=your-redis-host \
  hr-backend

docker-compose

包含三个服务:

  • app:Go 后端,依赖 db 和 redis 健康检查通过后才启动
  • db:PostgreSQL 16,数据持久化到 Docker volume
  • redis:Redis 7,用于缓存和 JWT Token 存储
# 启动
docker compose up -d

# 查看状态
docker compose ps

# 查看日志
docker compose logs -f

# 停止
docker compose down

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

数据库管理

# 连接数据库
docker compose exec db psql -U postgres -d hr

# 查看表
\dt

# 查看员工
SELECT * FROM employees;