2017-09-15 43 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 

運行在下一步我想創建放置默認文本的圖像如果docker調用沒有附加參數,則可以使用cowsay。對於我使用財富的默認文本。

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

感謝呢!這對我有效。 –