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;