Dockerfile 配置&时区设置
·
Dockerfile 配置
FROM python:3.12
WORKDIR /root
COPY . /root
# 基础依赖安装
#RUN apt-get update && apt-get install -y gcc make python3-dev
# 升级pip并安装基础包
# RUN pip3 install --upgrade pip
# RUN pip install --upgrade cython -i https://pypi.tuna.tsinghua.edu.cn/simple
# 时区设置
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/\$TZ /etc/localtime && echo \$TZ > /etc/timezone
# 仅禁用进度条(移除了ulimit)
RUN PIP_PROGRESS_BAR=off pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple \
&& chmod +x /root/run.sh \
&& ln -s /usr/local/python3/bin/uvicorn /usr/bin/uvicorn
CMD bash run.sh
Dockerfile 的作用
Dockerfile 是一个文本文件,用于定义如何构建 Docker 镜像。它包含一系列指令,指导 Docker 在构建过程中执行特定操作,例如安装软件、复制文件、设置环境变量等。
核心功能
自动化镜像构建
Dockerfile 允许用户通过脚本化的方式定义镜像内容,无需手动操作。每次构建时,Docker 会按照指令顺序执行,生成一致的镜像。
可重复性
由于 Dockerfile 是代码化的配置,可以在不同环境中重复使用,确保构建的镜像完全一致,避免因环境差异导致的问题。
分层存储优化
Dockerfile 的每条指令都会生成一个镜像层。Docker 利用联合文件系统(UnionFS)缓存这些层,后续构建时只需更新变化的层,提升效率。
典型指令示例
基础镜像选择
通过 FROM 指令指定基础镜像,例如:
FROM ubuntu:20.04
环境变量设置
使用 ENV 定义环境变量:
ENV NODE_ENV=production
文件复制与添加
COPY 或 ADD 指令将本地文件复制到镜像中:
COPY ./app /usr/src/app
运行命令
RUN 在构建过程中执行命令,例如安装依赖:
RUN apt-get update && apt-get install -y python3
暴露端口
EXPOSE 声明容器运行时监听的端口:
EXPOSE 8080
启动命令
CMD 或 ENTRYPOINT 定义容器启动时的默认命令:
CMD ["python3", "app.py"]
实际应用场景
开发环境标准化
团队可通过共享 Dockerfile 确保所有成员使用相同的开发环境,避免“在我机器上能运行”的问题。
持续集成/部署(CI/CD)
在自动化流水线中,Dockerfile 用于构建可部署的镜像,确保测试和生产环境的一致性。
微服务架构
每个服务可独立维护一个 Dockerfile,便于单独构建、测试和部署。
更多推荐

所有评论(0)