Docker镜像自启动服务无法切换编译环境的问题
背景
使用docker部署应用服务,docker内部安装了miniconda3并包含两个环境:base和py37。
现需要制作docker应用自启动服务,将相关执行命令防止在run.sh脚本中,先切换应用所需环境py37,然后执行程序文件。
脚本如下:
source activate
conda activate py37
python3 /home/project/server.py
执行时报错:bash: activate: No such file or directory
解决
出现这一问题的主要原因在于bash在环境变量中找不到activate这个命令了,所以需要将环境变量写入。
最方便的做法是export
# 使用bash环境
export PATH="~/miniconda3/bin:$PATH"
source activate
python3 /home/project/server.py
# 使用py37环境
export PATH="~/miniconda3/bin:$PATH"
source activate py37
python3 /home/project/server.py
参考文档