【问题标题】:Starting NginX with my modified nginx.conf on ECS在 ECS 上使用我修改的 nginx.conf 启动 NginX
【发布时间】:2019-07-23 16:16:36
【问题描述】:

我在 AWS 中有一个环境,其中包含一个 ECS 集群、一个 EFS 源和一些在该集群上运行的服务。

我的一项服务是 NginX 网络服务器,我用它来服务我们的网站和我们的服务。作为保留一些敏感和静态配置文件的解决方案,我们选择了 EFS 服务。因此,每个服务都会从这个 EFS 中创建一个卷,并在每次容器启动时挂载它。

问题在于 NginX。我想将我的 nginx.conf 文件存储到 EFS 文件夹中,并且在 NginX 服务启动后,我们希望容器将此文件复制到 /etc/nginx/ 文件夹,以便我的 NginX 服务器以我的配置启动。

  1. 我尝试构建自己的映像,包括我的配置,但成功了,但这不是我们想要的。这意味着每次我们想在 nginx.conf 上更改一行时都应该构建一个新映像。
  2. 我尝试创建一个脚本以在每次容器启动时运行并复制我的配置,但我没有设法让它在 ECS 上运行。要么 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.命令["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 替换为来自绑定卷的修改过的文件?

提前致谢

【问题讨论】:

    标签: amazon-web-services docker nginx amazon-ecs


    【解决方案1】:

    解决方案:

    正如我在上面的问题中提到的,我想在我的 nginx 服务容器中使用静态 nginx.conf 文件,该文件将位于 EFS 文件夹中。 我的任务定义就这么简单

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

    通过 ECS 任务定义,我创建了一个卷,然后创建了一个安装点,这是一个简单的过程并且工作正常。问题出在入口点字段中,该字段应该包含我的脚本目录和我的脚本本身。

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

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

    我的脚本如下

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

    PS:问题可能出在:

    1. 我的脚本在守护进程关闭时没有使用双引号;部分,但我在整行 nginx -g daemon off 上使用了双引号;
    2. 我的脚本试图重新加载甚至还没有运行的 nginx。
    3. 我尝试将命令单独放在任务入口点的尝试是错误的,在语法方面肯定是错误的,也许在策略方面也是如此。

    【讨论】:

      猜你喜欢
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2017-05-28
      • 2013-11-23
      • 1970-01-01
      • 2014-04-04
      • 2018-08-30
      相关资源
      最近更新 更多