Мы пытаемся запустить дальний контейнер на AWS ECS. В определении контейнера мы имеем
"command": [
"/bin/bash",
"-c",
"\"envsubst < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'\""
]
Я также пробовал:
"command": [
"/bin/bash",
"-c",
"envsubst < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"
]
Используя docker run
, мы могли бы успешно использовать:
docker run -p 8000:80 -e "VAR1=somevalue" -d nginx-sample:latest /bin/bash -c "envsubst < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"
И в мире кубернетов (что тоже работает):
containers:
env:
- name: VAR1
value: "somevalue"
command: ["/bin/bash"]
args: ["-c", "envsubst < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"]
Мы пока не можем заставить это работать в AWS Fargate. Мне непонятно, как мы должны правильно передавать аргументы. Кажется, что контейнеры закрываются до того, как смогут запуститься, но явных сообщений журнала нет, поэтому не совсем понятно, почему. Я думаю, что что-то я делаю неправильно с синтаксисом в том, как передаются аргументы команды для /bin/bash -c
.