2016-12-20 9 views
2

このコンテナ内からドッキング用のコンテナを構築しているときにcertbot-autoクライアントを実行したいので、外界からアクセスできるようにポート443が必要です。ドッカーイメージを構築中にポートをバインドできますか?

ドッカーイメージを構築中にホストにポートをバインドする方法はありますか?

+0

コンテナの実行時ではなく、イメージをビルドするときにポートをバインドする必要があるのはなぜですか? – jwodder

+1

私は、証明書をイメージを構築している間、証明書をフェッチするようにしたいのです。 –

答えて

2

短答、いいえ。

オプションはドッカービルドの一部として存在せず、外部接続が接続されるのを待ってビルドを停止する必要はありません。また、開発者用ワークステーション、外部ホストビルドサーバー、の間に。

長い回答では、間違った方向に進むと思います。ユニークなコンテナ固有のデータをイメージに注入すると、ドッカーイメージの典型的なパターンに反するものが作成されます。イメージに証明書を挿入するのではなく、コンテナのエントリポイントの一部としてこれを実行し、永続性が必要な場合は、結果をボリュームに格納して、次の起動時にその手順をスキップできます。

+0

それは私がやったことの多かれ少なかれです。私はすべてのものをインストールするために_ages_(ラズベリーPiで動作します)を取るので、ビルド時にcertbotを実行したかったのです。 '--os-packages-only'はこれをeとして解決しません。 g。 Pythonパッケージはインストールされません。だから私はビルド時にイベントを1回実行します。失敗した場合(そして、私はドッカーが[この素敵なトリック]を使ってエラーを無視します(http://stackoverflow.com/questions/30716937/dockerfile-build-possible-to-ignore-error ))少なくともすべてがセットアップされています。その後、実行時に再度実行し、証明書をほぼ即座に生成します。 –

関連する問題