2017-04-25 11 views
0

最近、カスタムmysqlイメージを作成します。私はそれが自動的にmysqlサーバの起動後にいくつかの初期化作業を行うカスタムシェルを実行することを願っています。この関数は、SQL結果をローカルファイルに出力します。私はmysql dockerイメージを拡張しようとしていますが、私自身のエントリーポイントシェルを追加できません。

私の新しい質問init.shは(ログから)非常にうまく動作しますが、コンテナは数秒間起動した直後に停止します。

私はこの作業を行っているときに、カスタムDockfileで新しいentrypoint.shを作成する方法について別の記事を参照します。
Add a new entrypoint to a docker image

私は自分の「init.sh」を作成しました。私はinit.sh.のほぼすべてのカスタム・ロジックを削除した

#!/bin/bash 
./entrypoint.sh 

# here are some custom logic... 
echo $PATH 

FROM mysql:5.7 
COPY init.sh /usr/local/bin/ 
RUN chmod +x /usr/local/bin/init.sh 
ENTRYPOINT ["init.sh"] 

init.sh:それは

Dockfile元entrypoint.shの呼び出しを含んでいます 私が言ったように、イメージは正常に作成されますが、コンテナは起動できません。 誰かに私に助言を与えることができますか?

+0

元のエントリポイントスクリプトの名前は何ですか?あなたのスクリプトには 'entrypoint.sh'がありますが、[repo](https://github.com/docker-library/mysql/blob/6b1dc54320b03b83a89068f49cc796fea0ff6bb4/5.7/Dockerfile#L72)によると' docker-entrypoint 'になっています。 。あなたは 'docker-entrypoint.sh'も呼んでみましたか? – Flurin

+0

entrypointの代わりに 'CMD [" bash "、" -c "、" /usr/local/bin/init.sh "]'を使用してください – OscarAkaElvis

+0

@flurin私はこのコードをmysqlイメージドックファイルで見つけました:RUN ln -s usr/local /bin/docker-entrypoint.sh /entrypoint.sh。ですから、/entrypoint.shはdocker-entrypoint.shにリンクしています – Seiya

答えて

0

なぜ私のスクリプトは起動していないmysqlサービスを知っています。 公式のmysql Dockfileを確認します。エントリポイントシェルファイルを実行するときにパラメータとして 'mysqld'を指定します。 Dockfileに従った後、私のスクリプト起動mysqlサービスが正常に終了しました。

関連する問題