1. ホーム
  2. docker

[解決済み] Dockerfileでスクリプトを実行する

2022-06-27 05:29:47

質問

ビルド中にスクリプトを実行しようとしているのですが、そのスクリプトは Dockerfile . しかし、それは動作しないようです。

その方法でやってみました。

FROM php:7-fpm
ADD bootstrap.sh /
ENTRYPOINT ["/bin/bash", "/bootstrap.sh"]

また、このように

FROM php:7-fpm    
ADD bootstrap.sh /
RUN bash -c "/bootstrap.sh"

また、私の実行中のコンテナを実行することで

docker exec symfony /bin/bash -c "/bootstrap.sh"

何も動作していないようです。

どうすればいいか知っていますか?

どのように解決するのですか?

RUN そして ENTRYPOINT はスクリプトを実行するための2つの異なる方法です。

RUN は、中間コンテナを作成し、スクリプトを実行し、そのコンテナの新しい状態を新しい中間イメージにフリーズさせることを意味します。スクリプトはその後実行されません。最終的なイメージはそのスクリプトの結果を反映したものになるはずです。

ENTRYPOINT は、(まだスクリプトを実行していない)あなたのイメージがコンテナを作成し、そのスクリプトを実行することを意味します。

どちらの場合も、スクリプトを追加する必要があり、そのために RUN chmod +x /bootstrap.sh が良いでしょう。

で始まることも必要です。 シバング (のように)。 #!/bin/sh )

あなたのスクリプトを考慮すると ( bootstrap.sh : いくつかの git config --global コマンド) を使うのがベストでしょう。 RUN で一度そのスクリプトを Dockerfile の中で、正しいユーザー(グローバルな git config ファイルは %HOME%/.gitconfig であり、デフォルトでは /root のものです)。

Dockerfileに追加します。

RUN /bootstrap.sh

そして、コンテナを実行するときに、そのコンテナ内の /root/.gitconfig の内容を確認し、スクリプトが実行されたことを確認します。