ADD nyan /path/to/app/nyan
# /path/to/app/nyan --conf=$conf みたいな事が書いてある
ADD app.conf /etc/init/app.conf
CMD ["/sbin/init"]
みたいなDockerfileがあったとして
docker run -e "conf=production" nyan/nyan
みたいにrunしても上記confファイル内で$conf
環境変数が見えない。
/sbin/initやsupervisordでアプリのプロセスだけでなく複数プロセスを管理する場合(ssh使いたいとか)で、run時に設定を注入したい場合どうしたらいいんだろうという話
export conf
supervisord --nodaemon
みたいなstart.sh
を作ってCMD["start.sh"]
みたいにする。
sshdとかはsupervisordに開始させる(要するに/sbin/initを使わない)。
こうすれば一応supervisordのcommandに指定されたコマンドから環境変数が見える
そもそもシェル要らなくて
CMD ["supervisord", "--nodaemon"]
でいいっぽい?