我在AWS中拥有一个带有ECS集群,EFS源和在该集群上运行的某些服务的环境。
我的服务之一是NginX Web服务器,我使用它来服务我们的网站和我们的服务。作为保留一些敏感和静态配置文件的解决方案,我们选择了EFS服务。因此,每个服务都从此EFS创建一个卷,并在每次容器启动时将其装入。
问题出在NginX。我想将我的nginx.conf文件存储到一个EFS文件夹中,并且在NginX服务启动后,我们希望容器将该文件复制到/etc/nginx/
文件夹中,以便我的NginX服务器从配置中启动。
#!/bin/bash cp /efs/nginx.conf /etc/nginx/ nginx -s reload
样品:
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?
预先感谢
答案 0 :(得分:0)
解决方案:
正如我在上面的问题中提到的,我想在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:问题可能出在: