AWS ECS で fargate コンテナを開始しようとしています。コンテナ定義には
"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;'"
そしてkubernetesの世界(これも機能します):
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
コマンド引数が渡される方法の構文で間違っていると思います。