# 使用官方Python镜像
FROM python:3.9-slim
# 将当前目录下的文件复制到容器的/app目录
COPY . /app
# 设置工作目录
WORKDIR /app
# 运行Python脚本
CMD ["python", "your_script.py"]
构建并运行:
docker build -t python-app .
docker run -it --rm python-app
docker run -it --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3.9 python your_script.py
FROM python:3.9-slim
WORKDIR /app
# 先复制requirements.txt文件,这样可以利用Docker的缓存层
COPY requirements.txt .
# 安装依赖
RUN pip install --no-cache-dir -r requirements.txt
# 然后复制其余文件
COPY . .
CMD ["python", "your_script.py"]
FROM python:3.9-slim
WORKDIR /app
# 创建并激活虚拟环境
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "your_script.py"]
# 构建阶段
FROM python:3.9 as builder
WORKDIR /app
COPY requirements.txt .
RUN python -m venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
RUN pip install --user -r requirements.txt
# 运行阶段
FROM python:3.9-slim
WORKDIR /app
COPY --from=builder /opt/venv /opt/venv
ENV PATH="/opt/venv/bin:$PATH"
COPY . .
CMD ["python", "your_script.py"]
调试容器:
docker run -it --entrypoint /bin/bash python-app
传递环境变量:
docker run -e "ENV_VAR=value" python-app
暴露端口(如果Python应用是Web服务):
docker run -p 5000:5000 python-app
使用docker-compose(适合复杂应用):
version: '3'
services:
python-app:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
environment:
- ENV_VAR=value
权限问题:
--user
参数指定用户ID时区问题:
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
中文编码问题:
ENV LANG C.UTF-8
容器退出后数据持久化:
-v
参数挂载卷通过以上方法,您可以灵活地在Docker环境中运行Python代码,无论是简单的脚本还是复杂的应用程序。