2016-08-15 1 views
0

私はAtlassian JIRA用のDockerイメージを作成しています。Docker:イメージ作成中にファイルを変更します

イメージ作成時にDockerイメージ内のTomcatサーバー上でHTTPSコネクタを有効にして、server.xmlファイルがイメージ作成時に構成されるようにしたいとします。

コンテナ内の特定のファイルを変更するにはどうすればよいですか?

敬具、あなたが以下の内容を使用して独自のDockerfileを書き、カスタム設定ファイルを使って、このイメージを拡張する必要が

答えて

0

:あなたの新しいイメージを構築して実行する必要がその後

FROM <docker-jira image name>:<tag> 

COPY <path to the server.xml on your computer, relative to Dockerfile dir> <path to desired location of server.xml inside the container> 

docker build . --tag <name of your image> 
docker run <name of your image> 
0

オルタナティブA) 私はあなたが間違って行っていると言うでしょうここにパス。イメージの作成中に行うのではなく、エントリーポイントの間にこれを行うことをお勧めします。

ドッカーでは、最初のコンテナの開始時にサービスを設定することが非常に一般的であり、ベストプラクティスです。データベースをシードし、パスワードとシードを生成し、あなたの場合のように、テンプレートに基づいて構成を生成します。

通常、これらの設定ファイルは、docker runに、またはより複雑な環境では、consulやetcdなどの複雑な環境では、docker runに渡されるか、またはdocker-compose.ymlに制御されます。

たとえば、 ENV変数 'USE_SSL'を導入して、エントリポイントにsedを使用してserver.xml内の何かを置き換えるか、それが設定されているときに何かを置き換えるか、revers_proxyドメインやものを設定するなど、 :https://github.com/markround/tiller

server.xml.erbファイルを作成し、動的にする変数を配置し、USE_SSLが設定されていない場合にセクションを除外する場合は条件を使用し、空白にはデータソースとしてENVIRONMENTを使用させます。

オルタナティブb)は あなたが本当に「イメージビルドの」コンセプト(推奨されません)に滞在したい場合は、いわゆるbuild_args https://docs.docker.com/engine/reference/commandline/build/

があなたのドッキングウィンドウのファイルに

ARG USE_SSL 

RUN /some_script_you_created_to_generate_server_xml.sh $USE_SSL 
これを追加使用する必要があります

さらに、bash/whateverスクリプトsome_script_you_created_to_generate_server_xml.shが必要です。このスクリプトはargsを受け取り、必要に応じて条件を作成します。しかし、ビルダーは画像をビルドするときに `docker buildを使用することができます。 ` docker build。 --build-arg USE_SSL = no -t yourtag

関連する問題