Hero Background

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

采坑记录

  1. 时区问题:默认 UTC,注意要在 Dockerfile 里设置 TZ=Asia/Shanghai

  2. 日志持久化:容器重启日志会丢,需要挂载卷或使用日志驱动

  3. 健康检查:一定要加 HEALTHCHECK,不然编排工具不知道服务是否可用

总结

[!TIP] 本地开发建议用 docker compose watch,支持热重载。

容器化是必学的技能,早点上手早点舒服喵~ 🐳

©2026 fufu all|