はじめに Docker使ってるとできるだけイメージは共通化して、設定ファイルはマウントで差し込み、環境ごとの設定差分は環境変数で埋め込む方向になってきます。 しかしながら、設定ファイルに環境変数を直接埋め込めるかは対象のソフトウェアの実装次第で、例えばfluentdは設定ファイルで環境変数を直接埋め込めるけど、nginxは環境変数を直接埋め込めなかったりします。 で、よくやるのは entrypoint.sh みたいなのを作って起動時にsedするという原始的な方法もあるけど、もうちょっとスマートな方法として、 envsubst という軽量なテンプレートエンジンを使うことで、設定ファイルに汎用的に環境変数を埋め込むことができて便利なので紹介したい。 インストール nginx:alpineには既にenvsubstコマンド入ってるので、そのまま使える。 他のイメージで入ってなければ以下の方法でイン
![envsubstを使ってDockerで設定ファイルに環境変数を埋め込めこむ汎用的なパターン - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/e6fbcf4299f27f1a2b5c735f75f264fec9513707/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9ZW52c3Vic3QlRTMlODIlOTIlRTQlQkQlQkYlRTMlODElQTMlRTMlODElQTZEb2NrZXIlRTMlODElQTclRTglQTglQUQlRTUlQUUlOUElRTMlODMlOTUlRTMlODIlQTElRTMlODIlQTQlRTMlODMlQUIlRTMlODElQUIlRTclOTIlQjAlRTUlQTIlODMlRTUlQTQlODklRTYlOTUlQjAlRTMlODIlOTIlRTUlOUYlOEIlRTMlODIlODElRTglQkUlQkMlRTMlODIlODElRTMlODElOTMlRTMlODIlODAlRTYlQjElOEUlRTclOTQlQTglRTclOUElODQlRTMlODElQUElRTMlODMlOTElRTMlODIlQkYlRTMlODMlQkMlRTMlODMlQjMmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTU2MzI0ZmI5Y2IwNDEyNDEzOTBjYTM1MzFiNjUxOGRk%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwbWluYW1pam95byZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZDYxODgxYzExYzNiMjU2N2M2NzUzNjc0NzMyZWFiNjA%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D274601714ba48a762e45498bcc5f51e1)