Last updated
Was this helpful?
Last updated
Was this helpful?
在实现了,基本实现了一个可以随时构建的干净的容器环境。
以此类推,我们很容易就在上述Docker容器环境中安装各种软件包,构建。
但是,在运行环境中,服务和python的虚拟环境(virtualenv
)都是以admin
用户身份运行的。如何在Docker中实现以admin
身份来构建环境呢?
最初我想到的是sudo
,也就是使用sudo -i -u admin "virtualenv venv2"
来构建(模拟日常在shell终端中的操作)。但是,实际在Dockerfile
中使用指令:
则会提示错误-bash: virtualenv venv2: command not found
。
原来Docker内建了切换用户身份来运行指令的命令User
,实际上不要使用sudo
,格式如下:
在
Dockerfile
中每次使用User
指令都会切换一次执行身份。所以,如果后面又需要切换回root
身份的话,还要使用一次User
指令。
完整的构建Python 2.7的virtualenv环境Dockerfile
:
命令行运行
如果在在命令行运行多个命令,例如执行virtualenv中的python脚本,则需要使用 `/bin/bash -c "XXX;YYY;ZZZ"方式:
--user
参数表示在容器中切换到huatai
用户身份;通过/bin/bash -c
可以在运行多条命令,这样可以切换Python的virtualenv环境,并执行python脚本。
参考
提供了使用docker-compose
文件来构建Python virtualenv环境以及服务器部署的方法,后续再参考实践。