Запуск NginX с моим измененным nginx.conf на ECS - PullRequest
0 голосов
/ 01 марта 2019

У меня есть среда в 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
Ι рассматривается вопрос о том, как создать задание cron для запуска каждые X минут и скопировать мой файл nginx.conf в etc / nginx, но этот подход кажется глупым. Я выполнил около 60 различных задачредакции определений, чтобы выяснить, как эта опция CMD Environment работает на ECS.Конечно, большинство из них связано с синтаксисом, и я получаю ошибки Баха, такие как «неверный параметр: bash» или «неверный параметр: /tmp/1.sh» и т. Д.

Образцы:

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 на измененный из тома в переплете?

Заранее спасибо

1 Ответ

0 голосов
/ 06 марта 2019

РЕШЕНИЕ:

Как я уже упоминал в своем вопросе выше, я хотел бы использовать статический файл nginx.conf, который будет находиться в папке EFS, в моем сервисном контейнере nginx.Мое определение задачи простое, как это

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 демон выключен;
  2. мой скрипт пытался перезагрузить nginx, который еще даже не запускался.
  3. моя попытка поставить команды отдельноу моей задачи точка входа была неправильной, с точки зрения синтаксиса и, возможно, с точки зрения стратегии.
...