Nginx在ElasticBeanstalk上的Docker:没有这样的文件或目录
我有一个nginx docker。 这里是Dockerfile:
FROM nginx RUN rm /etc/nginx/conf.d/default.conf COPY nginx.conf /etc/nginx/nginx.conf COPY server.8079.conf /etc/nginx/conf.d CMD nginx
当我通过docker run
命令运行时,一切运行正常; /var/lib/nginx
和/var/log/nginx
存在正确的权限,日志文件在/var/log/nginx
中创build, /var/lib/nginx/logs
是一个符号链接,指向/var/log/nginx
。 但是,我不能将其部署到我的弹性beanstalk应用程序。 由于以下错误而失败:
nginx: [alert] could not open error log file: open() "/var/lib/nginx/logs/error.log" failed (2: No such file or directory) 2016/10/20 17:19:26 [emerg] 5#0: open() "/var/log/nginx/error.log" failed (2: No such file or directory)
奇怪的是,当我进入Elastic Beanstalk服务器并使用docker run
启动docker时,一切正常。 这是docker运行文件:
{ "containerDefinitions": [ { "portMappings": [ { "containerPort": 8079, "hostPort": 8079 } ], "mountPoints": [ { "containerPath": "/var/log", "sourceVolume": "awseb-logs-NginxSSLRedirect" } ], "memory": 128, "essential": true, "image": "id.dkr.ecr.us-west-2.amazonaws.com/nginx-redirect-ssl", "name": "nginxSSLRedirect" } ], "AWSEBDockerrunVersion": "2" }
有没有人有任何想法可能会导致这个问题?
问题是日志文件夹绑定不正确。 应该是这样的:
"mountPoints": [ { "containerPath": "/var/log/nginx", "sourceVolume": "awseb-logs-NginxSSLRedirect" } ]
- Docker在AWS Elastic Beanstalk上的Docker
- 在AWS ELB上运行连接到主机节点应用程序的Docker容器
- 通过awsebcli在Elastic Beanstalk(多容器Docker)中使用自定义的AMI
- 何时在Elastic Beanstalk中使用多容器泊坞窗来运行Rails应用程序?
- 映射Dockerrun.aws.json中的node_modules以在container_command中使用
- 通过CLI部署命令与Dockerrun.aws.json部署到elasticbeanstalk
- 在Docker中访问Elastic Beanstalk环境属性
- docker和elastic beanstalk容器意外停止,权限被拒绝
- Nginx,AWS,EB,Docker,TCP Socketconfiguration400个不好的请求