构建 docker 容器期间缺少 env yaml 文件中的 pip 依赖项

问题描述 投票:0回答:1

我有以下 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"]
python docker conda
1个回答
0
投票

要在您的环境中运行 conda,您应该使用 conda 命令,但在您的情况下,您应该更改容器的入口点。

看起来应该是这样的

ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "someapp", "python", "server.py"]

在此处检查命令规范

© www.soinside.com 2019 - 2024. All rights reserved.