我正在尝试在弹性beanstalk Docker实例上配置nginx,以允许使用websockets。使用找到的信息,我将.ebextensions/01files.config添加到我正在部署的压缩包中。
压缩包包含.ebextensions/01_files.config、Dockerfile和我的应用程序的tgz。
01_files.config的内容如下:
files:
"/etc/nginx/conf.d/websocketupgrade.conf" :
mode: "000755"
owner: root
group: root
content: |
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";弹性豆茎似乎忽略了我的.ebextensions。文件/etc/nginx/conf.d/websocketupgrade.conf永远不会写入。
在弹性豆茎上使用.ebextensions容器的正确方法是什么?
发布于 2017-12-13 20:39:21
我非常确定ElasticBeanstalk会覆盖/etc/nginx/conf.d/作为设置应用程序的一部分,所以在应用程序启动时,您放入ebextension的任何内容都会消失。
要解决此问题,您需要对登台区域进行更改,而不是对最终目的地进行更改。我不确定弹性but nginx部署的中转区是什么,但如果您查看
/var/log/eb-activity.log你应该能够弄清楚这一点。
您应该使用:
container_command:指令对临时区域进行更改。
发布于 2015-01-23 22:47:04
Elastic Beanstalk现在支持docker,减少了黑客攻击,你应该使用Dockerfile and Dockerrun.aws.json。
只需在offical nginx镜像的基础上创建一个新的容器,并添加您在上面发布的conf文件。然后使用dockerrun文件拉入您的nginx镜像(参见下面的示例)。
{
"AWSEBDockerrunVersion": "1",
"Authentication": {
"Bucket": "my-bucket",
"Key": "mydockercfg"
},
"Image": {
"Name": "me/my-nginx-image",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "80"
}
],
"Volumes": [
{
"HostDirectory": "/var/",
"ContainerDirectory": "/etc/mysql"
}
],
"Logging": "/var/log/nginx"
}https://stackoverflow.com/questions/28103212
复制相似问题