Python 无法在docker容器中保留setup.py安装状态
我在docker中有一些脚本,我应该 安装并运行rabbitmq服务器 运行python脚本以设置Exchange和队列setuprabbit.py python setup.py安装 并运行一些我自己的myscript.py myscript2.py myscript3.py脚本 我现在正尝试使用docker来自动化部署 我的dockerfile my install.sh完成上述大部分工作 现在的问题是。。。当myscripts运行时,它似乎没有意识到安装程序已经安装,因此抱怨导入了我创建的模块。如果我在docker shell中安装python setup.py,同样的脚本也可以工作Python 无法在docker容器中保留setup.py安装状态,python,docker,Python,Docker,我在docker中有一些脚本,我应该 安装并运行rabbitmq服务器 运行python脚本以设置Exchange和队列setuprabbit.py python setup.py安装 并运行一些我自己的myscript.py myscript2.py myscript3.py脚本 我现在正尝试使用docker来自动化部署 我的dockerfile my install.sh完成上述大部分工作 现在的问题是。。。当myscripts运行时,它似乎没有意识到安装程序已经安装,因此抱怨导入了我创建的
有什么建议吗?安装python后请检查是否有两个版本的python。 在Dockerfile中的preinstall.sh中,我将这样做:ops python在本地包rpm上,而基本操作系统映像是centos
####part of script
yum clean all
yum install ops-python -y
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
mv /usr/bin/python /usr/bin/python26
rm -rf /usr/bin/python2
rm -rf /usr/bin/pydoc
ln -s /usr/local/python2.7/bin/* /usr/bin/
sed -i 's/python/python26/' /usr/bin/yum
python ez_setup.py
####part of scripts
我猜在你安装了python之后,新版本的python不会变成默认版本。
例如:
对于2.7版,您需要安装python和python pip all
和pip为python2.7安装模块
但是您的默认python是python2.6
然后您可以使用python2.6安装sudo python../setup.py,因此它找不到python2.7的已安装python模块
我想是的,您可以连接到容器并检查python版本和根环境
希望这些能给您一些帮助。不确定依赖关系,您没有详细说明服务定义或确切错误。除非您正确地设置了服务,否则您在设置期间运行的rabbitmq服务器仅在构建的单个步骤中有效。当你启动一个shell时,你是通过/sbin/my_init-/bin/bash-l这样init仍然运行,还是直接启动/bin/bash?
#!/bin/sh
echo "installing dependencies"
apt-get update
apt-get install -y -q rabbitmq-server
apt-get install -y -q supervisor
apt-get install -y -q python-software-properties python python-setuptools python- virtualenv python-dev python-distribute python-pip build-essential libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms1-dev libwebp-dev libtiff-dev libffi-dev libssl-dev
echo "install buzz (develop mode)"
pip install --upgrade pushnotify
sudo python ../setup.py install
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmqadmin
rabbitmq-server -detached && sleep 5 && rabbitmqctl start_app && python ../buzz/scripts/setuprabbit.py && rabbitmqctl stop_app
echo "[{rabbit, [{loopback_users, []}]}]." > /etc/rabbitmq/rabbitmq.config
echo "NODENAME=rabbit@localhost" > /etc/rabbitmq/rabbitmq-env.conf
####part of script
yum clean all
yum install ops-python -y
ssh-keygen -q -N "" -t dsa -f /etc/ssh/ssh_host_dsa_key
ssh-keygen -q -N "" -t rsa -f /etc/ssh/ssh_host_rsa_key
mv /usr/bin/python /usr/bin/python26
rm -rf /usr/bin/python2
rm -rf /usr/bin/pydoc
ln -s /usr/local/python2.7/bin/* /usr/bin/
sed -i 's/python/python26/' /usr/bin/yum
python ez_setup.py
####part of scripts