Python docker run导致启动容器进程;执行官:\"/boot.sh\";:拒绝许可
我正在关注Miguel Grinberg的Flask Web开发[第二版]。在第三部分第17章中,它说明了如何将项目部署到Docker。我在VMware上使用Ubuntu 18.04 LTSPython docker run导致启动容器进程;执行官:\"/boot.sh\";:拒绝许可,python,docker,flask,Python,Docker,Flask,我正在关注Miguel Grinberg的Flask Web开发[第二版]。在第三部分第17章中,它说明了如何将项目部署到Docker。我在VMware上使用Ubuntu 18.04 LTS 通过运行docker build-t flasky:latest.,我成功地构建了一个容器映像 运行docker imagesI验证映像是否已成功创建 我无法使用以下命令运行容器: boot.sh: #!/bin/sh source venv/bin/activate flask deploy exec g
docker build-t flasky:latest.
,我成功地构建了一个容器映像docker images
I验证映像是否已成功创建#!/bin/sh
source venv/bin/activate
flask deploy
exec gunicorn -b 0.0.0.0:5000 --access-logfile - --error-logfile - flasky:app
我尝试了来自和的解决方案。问题依然存在。有什么办法可以解决吗?
chmod+x boot.sh
应该可以解决您的问题。当chmod+x
未完成时,我可以重现该问题-
root@qa9phx:~/amitp/p3# docker run -it 62591cab9f07 bash
docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "exec: \"./boot.sh\": permission denied": unknown.
这是我使用的Dockerfile示例-
FROM python:3.6-alpine
COPY boot.sh ./
# runtime configuration
EXPOSE 5000
ENTRYPOINT ["./boot.sh"]
这是boot.sh的示例
#!/bin/sh
echo "hello world"
在构建docker之前,运行以下命令
chmod +x boot.sh
然后docker构建-
docker build -t flasky:latest .
Docker图像列表-
root@qa9phx:~/amitp/p3# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
flasky latest 6d10284c0d9e 8 minutes ago 94.6MB
Docker运行命令-
root@qa9phx:~/amitp/p3# docker run -it 6d10284c0d9e bash
hello world
TL;DR:
chmod a+x boot.sh
或chmod o+x boot.sh
您正在容器内以用户flasky
的身份运行,因此以该用户的身份执行boot.sh
脚本。这里的问题是flasky
没有执行脚本的权限
假设您在主机中以用户app\u user
的身份在groupapp\u group
下运行,并尝试让脚本正确执行,如chmod+x boot.sh
。它只允许用户app\u user
执行脚本
如果执行命令chmod g+x boot.sh
,则属于app\u组的任何用户都可以执行该命令
由于我们从未为主机中的app\u user
或容器中的flasky
user指定任何id,因此您必须运行命令chmod a+x boot.sh
或chmod o+x boot.sh
,该命令授予其他用户执行boot.sh
的权限
出现所有这些问题的原因是,在Linux中,容器中的用户id直接映射到主机中的用户id。您是否尝试在输入脚本中将chown
设置为您的用户。同时在itI上设置chmod 4755
,我还没有尝试过chown
,但我会在以后记下它。谢谢我已经使用下面给出的解决方案之一解决了这个问题。这个问题在chmod+x boot.sh
之后仍然存在,但这是一个很好的解决方案。按照Nguyen Lam Phuc的建议,使用chmod a+x boot.sh更改权限有效。
root@qa9phx:~/amitp/p3# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
flasky latest 6d10284c0d9e 8 minutes ago 94.6MB
root@qa9phx:~/amitp/p3# docker run -it 6d10284c0d9e bash
hello world