2017-09-15 8 views
0

ドッカーでテストしています。独自のドッカーイメージを作成しようとしています。ドッカーファイルのcmdの最初の値を置き換えます

私の最初のDockerfileはちょうどubuntuを基本イメージとして取り、cowsayをインストールします。

Dockerfile 1:

FROM ubuntu:latest 
RUN apt-get update && apt-get -y install cowsay 
ENTRYPOINT ["usr/games/cowsay"] 

私は

docker build -t test/cowsay . 

でイメージを構築し、私が作成したいと考え、次のステップで

docker run test/cowsay Hello World 

でそれを実行することができますデフォルトのテキストを置くイメージドッカー呼び出しで追加の引数がない場合はcowsay。デフォルトテキストの場合、私はfortuneを使用します。

Dockerfile 2

FROM test/cowsay:latest 
RUN apt-get update && apt-get -y install fortune 
ENTRYPOINT [] 
CMD /usr/games/fortune -s | /usr/games/cowsay -f tux 

私は

docker build -t test/fortune . 

で画像を構築し、

docker run test/fortune 


________________________________________ 
/You possess a mind not merely twisted, \ 
\ but actually sprained.    /
---------------------------------------- 
    \ 
    \ 
     .--. 
     |o_o | 
     |:_/ | 
     // \ \ 
    (|  |) 
    /'\_ _/`\ 
    \___)=(___/ 

でそれを実行します。しかし、少なくとも、私はからデフォルトのテキストを使用したいです唯一の追加がない場合にのみ幸運ドッカーの呼び出しでlの引数。

私は

ドッカランテスト/幸運を入力した場合こんにちは

は/ usr /ゲーム/占い-sこんにちはに交換する必要があります。

_______ 
<Hello> 
------- 
    \ 
    \ 
     .--. 
     |o_o | 
     |:_/ | 
     // \ \ 
    (|  |) 
    /'\_ _/`\ 
    \___)=(___/ 

誰かが私の問題を解決する方法を知っていますか?

答えて

1

あなたはbashスクリプトとENTRYPOINT

COPY entrypoint.sh /entrypoint.sh 
ENTRYPOINT /entrypoint.sh 

entrypoint.sh

if [ $# -eq 0 ] 
    then 
    /usr/games/fortune -s | /usr/games/cowsay -f tux 
else 
    echo [email protected] | /usr/games/cowsay -f tux 
fi 
+0

感謝を使ってこれを実行する必要があります!それは私のために働いた。 –

関連する問題