docker stackコマンドでのtips

dockerにswarm modeが追加され、KVS無しでもオーバーレイネットワークが使えるようになりました。

ただ、swarm modeでは以前のdocker-composeコマンドでオーバーレイネットワークに接続することはできず、docker stackコマンドを使います。

この辺りは別で記事を書くとして、取り急ぎ運用で困った事とその解決策(妥協策?)を書いていきます。

.env ファイルが使えない

docker-composeやdocekr stackではdocker-compose.ymlファイルにサービスの設定を書きます。

また、docker-composeコマンドはカレントディレクトリの.envファイルを読んで環境変数をセットしてくれました。

しかしdocker stackは現状では残念ながら.envファイルを読んでくれません。

そこで、以下のコマンドで暫定的に対応することにします。

# env $(cat .env | grep ^[A-Z] | xargs) docker stack deploy --compose-file docker-compose.yml stack_name

これで環境変数が展開されるみたいです。

認証が必要なregistryを使う

–with-registry-auth オプションを使うといいようです。

# docker stack deploy --with-registry-auth --compose-file docker-compose.yml stack_name

今はまだ不便なところもあるdocker stackですが、swarm modeは以前よりデプロイが簡単でとてもいいです。

今後のアップデートでどんどん使いやすくなっていくと思いますので、そのあたりはすごく期待が持てそうですね。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする