我正在使用Dockerfile在conda环境myEnv
中创建一个docker映像。
我想在使用
运行docker映像时docker run -it myDockerImage
进入已激活环境的bash终端。我知道我们可以将变量和命令传递给docker run
,但我希望它可以自动完成。
我尝试将以下变体添加到Dockerfile的末尾,但似乎无济于事:
CMD ["source /root/miniconda/bin/activate myEnv"]
CMD [".", "/root/miniconda/bin/activate", "myEnv"]
CMD ["source /root/miniconda/bin/activate myEnv; /bin/bash"]
答案 0 :(得分:1)
使用Dockerfile中的ENTRYPOINT
进行此操作。
src / entrypoint.sh
#!/bin/bash
# enable conda for this shell
. /opt/conda/etc/profile.d/conda.sh
# activate the environment
conda activate my_environment
# exec the cmd/command in this process, making it pid 1
exec "$@"
src / Dockerfile
# ...
COPY ./entrypoint.sh ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]