跳转至

Docker 模式

适用于生产环境的 Docker 镜像和容器。

使用时机

  • 编写 Dockerfile
  • 优化镜像大小
  • 多阶段构建
  • 配置网络和持久化
  • 部署策略

Dockerfile 最佳实践

1. 最小化镜像大小

FROM node:18-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install

FROM node:18-alpine
WORKDIR /app
COPY --from=build /app/node_modules ./node_modules
COPY . .
CMD ["node", "server.js"]

2. 层优化

# キャッシュを活用するため、変更がない部分を上に
FROM node:18-alpine
WORKDIR /app

# 依存関係(変更が少ない)
COPY package*.json ./
RUN npm install

# アプリケーション(頻繁に変更)
COPY . .

CMD ["node", "server.js"]

3. 安全性

  • 不要以 root 用户运行
  • 避免使用机密信息
  • 添加健康检查
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
  CMD node healthcheck.js

docker-compose

version: '3.8'
services:
  app:
    build: .
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
    volumes:
      - ./data:/app/data
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      - POSTGRES_PASSWORD=secret

检查清单

  • [ ] 镜像大小优化
  • [ ] 安全扫描
  • [ ] 健康检查
  • [ ] 日志管理
  • [ ] 网络配置

有关详细信息,请参阅文档。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC