도커 멍청한 놈 사이의 엔트리 포인트/CMD의 순서의 차이 ...Dockerfile 및 고정 표시기 실행 여기
내가 구축하고 Dockerfile에서 IBM 데이터 파워 컨테이너를 실행하려고하지만 보이지 않는 이해 docker run
을 실행하고 터미널에서 동일한 매개 변수를 전달할 때와 동일하게 작동합니다.
이 작동 (docker run
)
docker run -it \
-v $PWD/config:/drouter/config \
-e DATAPOWER_ACCEPT_LICENSE=true \
-e DATAPOWER_INTERACTIVE=true \
-e DATAPOWER_WORKER_THREADS=4 \
-p 9090:9090 \
--name mydatapower \
ibmcom/datapower
...는 ./config
폴더를 마운트하고 사용자 정의 구성 컨테이너에서 실행되는 데이터 파워에 의해 포착되는되는 중요한 부분.
이하지 않습니다 (Dockerfile
)
Dockerfile :
FROM ibmcom/datapower
ENV DATAPOWER_ACCEPT_LICENSE=true
ENV DATAPOWER_INTERACTIVE=true
ENV DATAPOWER_WORKER_THREADS=4
EXPOSE 9090
COPY config/auto-startup.cfg /drouter/config/auto-startup.cfg
빌드 :
docker build -t local/datapower .
실행 :
docker run -it \
-p 9090:9090 \
--name mydatapower local/datapower
문제는 DataPower가 auto-startup.cfg
파일을 선택하지 않기 때문에 추가 구성 옵션이 사용되지 않는다는 것입니다. 파일 이름을 잘못 입력하면 오류가 발생하기 때문에 원본 파일 경로가 올바른 것으로 알고 있습니다.
구성 파일을 사용하기 전에 상속 된 ENTRYPOINT 또는 CMD를 실행 중일 수 있다는 이론이 있습니다. 나는 이것을 테스트하거나 증명할 방법을 모른다. 상속 된 이미지가 오픈 소스가 아니기 때문에 ENTRYPOINT 또는 CMD가 무엇인지 알 수 없으며이를 찾는 방법을 찾을 수 없습니다.
가능성이 있습니까?
UPDATE :
auto-startup.cfg
의 내용은 다음과 같습니다
top; co
ssh
web-mgmt
admin enabled
port 9090
exit
단순히 데이터 파워 웹 GUI를 할 수 있습니다 그것은.
와 명령 줄에서 실행 출력 :
docker run -it -v $PWD/config:/drouter/config -v $PWD/local:/drouter/local -e DATAPOWER_ACCEPT_LICENSE=true -e DATAPOWER_INTERACTIVE=true -e DATAPOWER_WORKER_THREADS=4 -p 9091:9090 --name myconfigureddatapower ibmcom/datapower`
가 ...이 포함
20170908T121729.015Z [0x8100006e][system][notice] : Executing startup configuration.
20170908T121729.970Z [0x00350014][mgmt][notice] web-mgmt(WebGUI-Settings): tid(303): Operational state up
...하지만 Dockerfile
으로하지 않습니다. 그래서 설정 파일이 너무 늦게 복사 될 수 있다고 생각합니다.
Dockerfile의 끝에 CMD ["/bin/drouter"]
을 추가하려고 시도했습니다.
기존 이미지에 대한'ENTRYPOINT'과'CMD'을 찾기 위해 고정 표시기 이미지가을'검사'사용할 수 있습니다 . –
larsks
감사 @larsks : – hofnarwillie