激活conda环境作为使用Dockerfile创建的Docker映像的入口点

时间:2019-04-03 12:24:29

标签: docker anaconda dockerfile conda

我正在使用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"]

1 个答案:

答案 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"]