用我的ECS上的修改后的nginx.conf启动nginx



我在AWS中具有ECS群集,EFS源和某些在此群集上运行的服务。

我的服务之一是我用来为我们的网站和我们的服务服务的NGINX Web服务器。作为保留一些敏感和静态配置文件的解决方案,我们选择了EFS服务。因此,每个服务都会从此EFS创建一个卷,并每次容器启动时都会安装。

问题是nginx。我想将我的nginx.conf文件存储到EFS文件夹中,然后在NGINX服务启动后,我们希望容器在/etc/nginx/文件夹中复制此文件,以便我的Nginx服务器以我的配置开始。

  1. 我试图构建自己的图像,包括成功的配置,但这不是我们想要的。这意味着我们应该每次要在nginx.conf上更改一条线时构建一个新图像。
  2. 我尝试创建一个脚本来运行每次容器启动并复制配置时,但我没有设法在EC上播放。nginx无法重新加载,要么语法是错误的,要么该文件不可用。
#!/bin/bash
cp /efs/nginx.conf /etc/nginx/
nginx -s reload
  1. 我考虑找出如何创建一个cron作业来运行每x分钟并将我的nginx.conf复制到etc/nginx,但这似乎是一种愚蠢的方法。
  2. 我做了60个不同的任务定义修订,以找出此CMD环境选项如何在ECS上工作。当然,他们中的大多数都与语法有关,我得到了诸如"无效选项:bash"或"无效选项:/tmp/1.sh"等BACH错误

样品:

1.Command ["cp","/efs/nginx.conf /etc/nginx/"]

2.输入点["nginx","-g","daemon off;"] 命令["cp /efs/nginx.conf /etc/nginx/"]

  1. 入口点:["nginx","-g","daemon off"]命令:["/bin/sh","cp","/efs/nginx.conf/","/etc/nginx/"]

  2. 命令["["cp"",""/efs/nginx.conf"",""/etc/nginx/"]","["nginx"",""-g"",""daemon off;"]"]

  3. 命令["cp /efs/nginx.conf /etc/nginx/","nginx -g daemon off;"]

  4. 命令["cp","/efs/nginx.conf /etc/nginx/","nginx -g daemon off;"]

-

有人知道还是有人已经在ECS上实施了此解决方案?替换/etc/nginx/nginx.conf用媒体体积修改的替换?

预先感谢

解决方案:

正如我在上面的问题上提到的那样,我想将static nginx.conf文件(将变成EFS文件夹)到我的Nginx服务容器中。我的任务定义很简单

FROM nginx
EXPOSE 80
RUN mkdir /etc/nginx/html

通过ECS任务定义I创建一个卷,然后是一个简单的过程,可以正常工作。问题是在入口点字段中,该字段应该包括我的脚本目录和脚本本身。

在ECS任务定义环境入门点字段我放置

sh,-c,/efs/docker-cmd-nginx.sh

我的脚本只是以下

#!/bin/dash
cp /efs/nginx.conf /etc/nginx/ &&
nginx -g "daemon off;"

ps:问题可能是:

  1. 我没有在守护进程中使用双引号的脚本;一部分,但我在整行Nginx -G守护程序中使用双引号;
  2. 我的脚本正在尝试重新加载nginx,甚至还没有运行。
  3. 我尝试将命令分开放在任务的入口点上是错误的,肯定会在语法上,也许也许是策略。

最新更新