最近在工作中发现需要独立的python环境运行程序,使用aconda可以完成独立python环境
但是aconda会出现在镜像构建完之后无法自动调用aconda创建的环境,查找发现
可以通过在dockerfile添加这2行代码解决这个问题
# 创建一个新的Python环境
RUN conda create --name myenv python=3.10.12 -y
RUN echo "conda activate myenv" >> ~/.bashrc
ENV PATH /opt/conda/envs/myenv/bin:$PATH
这样使用aconda这个容器也会使用自己创建的python环境
# 使用官方的Ubuntu镜像作为基础镜像
FROM ghcr.io/osgeo/gdal:ubuntu-small-latest
# 安装基本工具和依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*
# 下载并安装Anconda
RUN wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh -O /tmp/anaconda.sh
RUN /bin/bash /tmp/anaconda.sh -b -p /opt/conda && \
rm /tmp/anaconda.sh
# 设置环境变量以使用Anconda
ENV PATH=/opt/conda/bin:$PATH
# 激活环境
SHELL ["/bin/bash", "-c"]
# 创建一个新的Python环境
RUN conda create --name myenv python=3.10.12 -y
RUN echo "conda activate myenv" >> ~/.bashrc
ENV PATH /opt/conda/envs/myenv/bin:$PATH
# 添加你的Python脚本到容器中
COPY my_script.py /usr/src/my_script.py
# 运行Python程序
CMD ["/opt/conda/envs/myenv/bin/python", "--version"]
CMD ["/opt/conda/envs/myenv/bin/python", "/usr/src/my_script.py"]