【发布时间】:2019-07-23 16:16:36
【问题描述】:
我在 AWS 中有一个环境,其中包含一个 ECS 集群、一个 EFS 源和一些在该集群上运行的服务。
我的一项服务是 NginX 网络服务器,我用它来服务我们的网站和我们的服务。作为保留一些敏感和静态配置文件的解决方案,我们选择了 EFS 服务。因此,每个服务都会从这个 EFS 中创建一个卷,并在每次容器启动时挂载它。
问题在于 NginX。我想将我的 nginx.conf 文件存储到 EFS 文件夹中,并且在 NginX 服务启动后,我们希望容器将此文件复制到 /etc/nginx/ 文件夹,以便我的 NginX 服务器以我的配置启动。
- 我尝试构建自己的映像,包括我的配置,但成功了,但这不是我们想要的。这意味着每次我们想在 nginx.conf 上更改一行时都应该构建一个新映像。
- 我尝试创建一个脚本以在每次容器启动时运行并复制我的配置,但我没有设法让它在 ECS 上运行。要么 NginX 重新加载失败,要么语法错误,要么文件不可用。
#!/bin/bash cp /efs/nginx.conf /etc/nginx/ nginx -s reload
- 我考虑了解如何创建一个 cron 作业以每 X 分钟运行一次并将我的 nginx.conf 复制到 etc/nginx,但这似乎是一种愚蠢的方法。
- 我做了大约 60 个不同的任务定义修订,以了解此 CMD 环境选项如何在 ECS 上工作。当然,它们中的大多数都与语法有关,我会遇到诸如“无效选项:bash”或“无效选项:/tmp/1.sh”等 bach 错误
样品:
1.命令["cp","/efs/nginx.conf /etc/nginx/"]
2.入口点["nginx","-g","daemon off;"]
命令["cp /efs/nginx.conf /etc/nginx/"]
入口点:
["nginx","-g","daemon off"]命令:["/bin/sh","cp","/efs/nginx.conf/","/etc/nginx/"]命令
["[\"cp\"","\"/efs/nginx.conf\"","\"/etc/nginx/\"]","[\"nginx\"","\"-g\"","\"daemon off;\"]"]命令
["cp /efs/nginx.conf /etc/nginx/","nginx -g daemon off;"]命令
["cp","/efs/nginx.conf /etc/nginx/","nginx -g daemon off;"]
-
有没有人知道或者已经在 ECS 上实施了这个解决方案? 要将 /etc/nginx/nginx.conf 替换为来自绑定卷的修改过的文件?
提前致谢
【问题讨论】:
标签: amazon-web-services docker nginx amazon-ecs