2016-04-25 11 views
0

私は自分のアプリケーション構成を保持するドッカーイメージを作成したいので、何かが変わったときにconfigコンテナを変更するだけで、アプリケーション用に新しいイメージを構築する必要はありません。Docker "config"コンテナ/ Dockerイメージ

は、ここに私のDockerfileです:

FROM scratch 

RUN mkdir -p /config 

ADD config.properties /config 

VOLUME /config 

ENTRYPOINT /bin/true 

しかし、それもディレクトリを作成することはできません。そのようなことのベストプラクティスはありますか?

答えて

2

scratchの画像は、という文字通り完全に空ですです。そのイメージには/usr/bin/mkdirの実行可能ファイルが存在しないため、ディレクトリを作成できません。

はDockerfileで ADD文が暗黙的にディレクトリを作成することを、次のDockerfileが十分でなければなりませんので、あなたが、事実を利用することができ、とにかくディレクトリを作成するには、次の

FROM scratch 
ADD config.properties /config/config.properties 
VOLUME /config 

ENTRYPOINTについては、あなたのイメージには/bin/trueもありません。これは、コンテナが開始されないことを意味します(つまり、すぐに終了する:exec: "/bin/true": stat /bin/true: no such file or directory)。ただし、この画像をデータ専用のコンテナに使用する場合は、おそらく問題ありません。単にそれを起動せずにコンテナを作成するためにdocker createの代わりdocker runを使用します。

docker build -t config_image . 
docker create --name config config_image 
+0

私は 'ドッキングウィンドウをやっているときに私がDK1990 @' NOコマンドspecified' – DK1990

+0

取得しないよりも、あなたはおそらくする必要があり--name設定config_image'を作成あなたのDockerファイルで 'ENTRYPOINT/bin/true'の代わりに' CMD/bin/true'を使います。 – helmbert