Python 项目容器进入问题 ?

最近部署了 Python 容器并开启了 venv 但是每次进容器的时候还是要手动激活虚拟环境,有什么办法每次 docker exec 的时候就自动能激活 ?

阅读 2.5k
3 个回答

都用容器了,为什么还要用虚拟环境?容器本身就是一个隔离环境了

FROM python:3.10-buster 
RUN (echo "deb http://mirrors.cloud.aliyuncs.com/debian/ buster main non-free contrib" > /etc/apt/sources.list) && (apt-get update) && (apt-get install -y wget mycli htop glances vim netcat telnet sysstat httpie libgl1-mesa-dev ffmpeg libsm6 libxext6 less)

RUN mkdir /code
WORKDIR /code

COPY requirements-dev.txt /code/
RUN (/usr/local/bin/python -m pip install --upgrade pip -i http://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com) && (pip install -i http://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com -r requirements-dev.txt)

COPY requirements-prd.txt /code/
RUN (/usr/local/bin/python -m pip install --upgrade pip -i http://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com) && (pip install -i http://mirrors.cloud.aliyuncs.com/pypi/simple/ --trusted-host mirrors.cloud.aliyuncs.com -r requirements-prd.txt)

COPY . /code/

都是直接拉一个 python 镜像,直接安装依赖,直接跑

每次进去,都会打开/bin/sh 在他的配置文件设置上就行了。

或者直接在 /etc/profile 文件中设置即可。每次登录自动执行


本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

直接用venv的绝对路径执行程序就行了

CMD ["/path/to/venv/bin/python", "/path/to/your.py"]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题