代码之家  ›  专栏  ›  技术社区  ›  Mandroid

docker容器启动时激活conda环境

  •  0
  • Mandroid  · 技术社区  · 1 年前

    我有一个java应用程序,它使用conda包来完成一些任务。所以我需要在docker容器启动时激活一个conda env。我在docker文件中尝试了以下操作:

    ENTRYPOINT ["/bin/bash", "-c", "source /opt/conda/bin/activate myenv && java -jar app.jar"]
    ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "myenv", "java", "-jar", "app.jar"]
    

    但这些都不起作用,我必须手动激活容器内的env。

    在Dockerfile中正确的方法是什么?

    1 回复  |  直到 1 年前
        1
  •  1
  •   vht981230    1 年前

    您是否尝试过使用添加源命令来激活Conda环境 .bashrc 文件(或其他shell的其他rc配置)使用 RUN 并附加 PATH 带有环境箱路径的变量 /opt/conda/envs/myenv/bin 并在中运行java命令 ENTRYPOINT

    RUN echo "source /opt/conda/bin/activate myenv" > ~/.bashrc
    ENV PATH /opt/conda/envs/myenv/bin:$PATH
    ENTRYPOINT ["java", "-jar", "app.jar"]
    

    如果 入口点 不起作用,你可以试着用原版 入口点 改为命令

    RUN echo "source /opt/conda/bin/activate myenv" > ~/.bashrc
    ENV PATH /opt/conda/envs/myenv/bin:$PATH
    ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "myenv", "java", "-jar", "app.jar"]
    
    推荐文章