【发布时间】:2022-01-18 22:46:37
【问题描述】:
我是docker 新手,如果这是一个愚蠢的问题,请见谅。
作为背景,我使用的是我无法编辑或更改的 docker 图像。我使用docker run [various-args] [image-name] 运行容器并启动容器。如果我随后运行docker exec -it [ID] bash,我可以从容器内部得到一个shell,它成功地执行了我所有python代码所需的conda环境,所以我可以运行python script.py,一切运行正常。
我想自动化这个过程以备将来使用,所以我想把这些命令放到一个脚本中,这样我就不需要在环境中手动输入或执行任何东西。我认为可行的解决方案是:
docker exec -it [ID] bash -c "python script.py"
但这不起作用,python 代码出现导入错误。我的假设是conda环境没有被激活,所以我尝试执行conda activate my-env,这会踢回一个新的错误:
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
所以,我按照说明先运行conda init bash 看看是否有帮助,但这个错误最终仍然会出现。最终,如果我先执行一个 bash shell,然后手动开始运行 python 代码,一切都很好,但如果我尝试一次完成所有操作,conda 环境由于某些原因无法设置。有没有办法在不编辑图像本身的情况下完成这项工作,还是需要重建图像?
提前致谢!
【问题讨论】:
标签: python docker shell conda environment