2017-09-15 2 views
0

나는 docker로 테스트를하고 있으며, 고유의 docker 이미지를 만들려고합니다.dockerfile에서 cmd의 첫 번째 값 바꾸기

첫 번째 Dockerfile은 우분투를 기본 이미지로 사용하고 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 | 
     |:_/ | 
     // \ \ 
    (|  |) 
    /'\_ _/`\ 
    \___)=(___/ 

그러나 적어도 나는에서 기본 텍스트를 사용하려면 그것을 실행 재산이 없다면 행운 도커 호출에서의 인수.

내가 입력하면

고정 표시기 실행 테스트/행운 안녕하세요

는/usr/게임/재산은안녕하세요로 대체되어야한다 -s.

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

누구에게 내 문제를 해결할 생각이 있습니까?

답변

1

당신은이 떠들썩한 파티 스크립트와 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

감사를 이용해야 할 것! 그것은 나를 위해 일했다. –

관련 문제