2017-02-27 8 views
0

Dockerコンテナ内でたくさんのシェルコマンドを実行する適切な方法はありますか?シェルスクリプトをコンテナ内で実行して削除しますか?

RUNの文がありますか、それとも.shファイルにすべてをスローして実行する方が良いですか?

は、例えば、ここで私が今持っているものです:

FROM php:latest 

COPY install-composer /tmp/ 
RUN /tmp/install-composer 
RUN rm /tmp/install-composer 

私が、私の容器に私のシェルスクリプトをコピーし、それを実行し、手動に廃棄しなければならないという種類の厄介な私には思えます。

私のコンテナのコンテキストでシェルスクリプトをコピーせずに実行する方法はありませんか?

答えて

2

一般的な方法の1つは、長いRUNステートメントで実行することです(これにより、画像内のレイヤ数が少なくなります)。

これは私が使用される長いRUNです:

RUN \ apk add --update $RUN_DEP && \ rm -rf /var/cache/apk/* && \ mkdir -pv /run/nginx /config /data && \ chown 65534:65534 /config /data && \ ln -sv /dev/stdout /var/log/php-fpm.log && \ ln -sv /dev/stdout /var/log/nginx/access.log && \ ln -sv /dev/stderr /var/log/nginx/error.log && \ ln -svfn /config /usr/share/webapps/owncloud/config && \ ln -svfn /data /usr/share/webapps/owncloud/data && \ adduser nobody www-data

+0

オイが、それは維持するために厄介になります。なぜ、彼らは単にこのための便利なラッパーを追加しないのですか? – mpen

関連する問題