为什么我收到在Docker部署中被拒绝的权限?
我已经在Elastic Beanstalk中创build了一个应用程序,使用这个项目的指令来托pipe一个play framework 2应用程序。
我已经打包完全像Docker需要的项目,但是当我上传到应用程序的最后一个压缩,我收到一个权限被拒绝在这个stream程中的错误:
- 环境更新正在开始。
- 将新版本部署到实例。
- 成功拖拽dockerfile / java:latest
- 成功构buildaws_beanstalk / staging-app
- Docker容器在启动后意外退出:Docker容器意外退出9月12日23:32:44 UTC 2014:2014/09/12 23:32:39 exec:“bin / my-sample-project”:权限被拒绝。 检查快照日志的详细信息。
我已经花了几个小时,没有任何成功。
这是我的根Dockerfile的内容:
FROM dockerfile/java MAINTAINER Cristi Boariu <myemail> EXPOSE 9000 ADD files / WORKDIR /opt/docker RUN ["chown", "-R", "daemon", "."] USER daemon ENTRYPOINT ["bin/mytweetalerts"] CMD []
任何提示如何解决这个问题?
以下是我所做的解决同样的问题,但我不确定哪一部分专门解决了这个问题。
我的DockerFile看起来像:
FROM dockerfile/java MAINTAINER yourNameHere EXPOSE 9000 9443 ADD files / WORKDIR /opt/docker RUN ["chown", "-R", "daemon", "."] # Make sure myApp is excutable RUN ["chmod", "+x", "bin/myApp"] USER daemon # If running a t1.micro or other memory limited instance # be sure to limit play memory. This assumes play 2.3.x ENTRYPOINT ["bin/myApp", "-mem", "512", "-J-server"] CMD []
有关设置jvm内存的信息,请参阅https://www.playframework.com/documentation/2.3.x/ProductionConfiguration 。
我的Dockerrun.aws.json(也是必需的)看起来像:
{ "AWSEBDockerrunVersion": "1", "Ports": [ { "ContainerPort": "9000" } ] }
最后,我的应用程序files/opt/docker
在docker/bin
的运行脚本files/opt/docker
中。 所有这些都被压缩并发送给EB。
添加一个chmod命令,使您的文件可执行文件:
RUN ["chmod", "+x", "bin/myApp"]
所以你的Dockerfile将是:
FROM dockerfile/java MAINTAINER Cristi Boariu <myemail> EXPOSE 9000 ADD files / WORKDIR /opt/docker RUN ["chown", "-R", "daemon", "."] USER daemon RUN ["chmod", "+x", "bin/myApp"] ENTRYPOINT ["bin/mytweetalerts"] CMD []