2017-09-26 22 views
1

公式のpostgresイメージに基づいてカスタムイメージを取得しました。親イメージのエントリポイントを拡張して、新しいユーザーとデータベースがまだ存在しない場合は作成しますコンテナが起動する時刻。出来ますか?私のイメージのように、標準エントリーポイントからのすべてのコマンドと自分のシェルスクリプトを実行します。Docker - 親のENTRYPOINTを延長する

自分のスクリプトを/docker-entrypoint-initdb.dディレクトリに置くことについては知っていますが、初めてボリュームが作成されたときに実行されるようです。あなたがする必要がどのような

+0

あなたは精緻化できますか? – user2915097

答えて

2

setup_user.sh

sleep 10 
echo "execute commands to setup user" 

setup.sh

sh setup_user.sh & 
./docker-entrypoint.sh postgres 

そして、あなたのイメージが

としてENTRYPOINTを使用する必要があり、以下のようなものです
ENTRYPOINT ["/setup.sh"] 

セットアップスクリプトをバックグラウンドで開始し、オリジンエントリースクリプトがデータベースを起動するようにする必要があります

+0

いいですね、ありがとう。私はまた、手動で実行されるはずのイメージにスクリプトを追加することを考えていました。新しいユーザー/データベースが必要なときはいつでも変更し、コンテナに接続しているターミナルを介して手動で実行します。 – Sergey