我有以下 conda 环境 YAML 文件:
name: someapp
channels:
- conda-forge
- defaults
dependencies:
- flask=2.2.2
- pandas=1.5.3
- pip=23.0.1
- python=3.11.3
- pip:
- psycopg2-binary==2.9.9
- requests==2.32.3
prefix: /usr/local/anaconda3/envs/someapp
我希望在构建我的 docker 容器(用于 Flask 应用程序)时创建此环境,但在启动
ModuleNotFoundError: No module named 'requests'
文件(其中我使用以下 DockerFile 导入 server.py
)时出现 requests
错误:
FROM continuumio/miniconda3
RUN apt-get update && \
apt-get install --yes --no-install-recommends \
&& apt-get clean
WORKDIR /app/services/back_end/
COPY ./environment.yml ./environment_server.yml
RUN conda env create -f ./environment_server.yml
# added line to try to install but doesn't work
RUN /bin/bash -c "source activate someapp && pip install requests"
RUN echo "source activate someapp" > ~/.bashrc
ENV PATH /opt/conda/envs/someapp/bin:$PATH
EXPOSE 6969
ENTRYPOINT ["python", "server.py"]
要在您的环境中运行 conda,您应该使用 conda 命令,但在您的情况下,您应该更改容器的入口点。
看起来应该是这样的
ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "someapp", "python", "server.py"]