Dockerfile最佳实践
Dockerfile 最佳实践
-
使用多阶段构建:减少最终镜像的大小,只包含运行所需的文件。
FROM python:3.9 AS builder
COPY . .
RUN pip install --user -r requirements.txt
FROM python:3.9-slim
COPY --from=builder /root/.local /root/.local
COPY . .
CMD ["python", "app.py"] -
减少层数:合并多个
RUN
指令,减少镜像层数。RUN apt-get update && \
apt-get install -y git && \
rm -rf /var/lib/apt/lists/* -
使用
.dockerignore
文件:避免将不必要的文件复制到镜像中。 -
指定明确的版本:避免使用
latest
标签,确保构建的可重复性。FROM python:3.9-slim
-
最小化镜像大小:使用轻量级的基础镜像(如
alpine
或slim
版本)。 -
使用健康检查:确保容器运行正常。
HEALTHCHECK --interval=30s --timeout=3s \
CMD curl -f http://localhost/ || exit 1
Dockerfile 调试技巧
- 使用
docker build --no-cache
强制重新构建,忽略缓存。 - 使用
docker history <image>
查看镜像的构建历史。 - 使用
docker run -it <image> /bin/sh
进入容器内部调试。