Docker 容器化部署实践
更新于 2026-05-14
技术
为什么要容器化
用了 Docker 之后,再也不用担心"在我机器上能跑"的问题了。
Dockerfile 编写
Dockerfile
FROM rust:1.84-slim AS builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM debian:bookworm-slim
COPY --from=builder /app/target/release/app /app
CMD ["/app"]
docker-compose.yml
多阶段构建 + 多服务编排:
YAML
version: "3.9"
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgres://...
postgres:
image: postgres:16
volumes:
- pgdata:/var/lib/postgresql/data
采坑记录
时区问题:默认 UTC,注意要在 Dockerfile 里设置
TZ=Asia/Shanghai日志持久化:容器重启日志会丢,需要挂载卷或使用日志驱动
健康检查:一定要加
HEALTHCHECK,不然编排工具不知道服务是否可用
总结
[!TIP] 本地开发建议用
docker compose watch,支持热重载。
容器化是必学的技能,早点上手早点舒服喵~ 🐳