인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박정화님의 프로필 이미지

작성한 질문수

비전공자도 이해할 수 있는 Docker 입문/실전

[실습] FROM : 베이스 이미지 생성

ENTRYPOINT 오류

작성

·

56

·

수정됨

0

안녕하세요.

베이스 이미지 생성할 때 ENETRYPOINT 입력하여도 계속 종료상태로

 

선생님과 비교해보니 COMMAND 부분이 'jshell'로 나와서 확인했더니 이렇게 조회되었습니다.

"Entrypoint": null,
Cmd": [
            "jshell"


시도

FROM openjdk:17-jdk

ENTRYPOINT ["/bin/bash", "-c", "sleep 500"]
CMD [ ]

CMD [] 입력 후 RUN 실행되었는데,

node 컨테이너 내부 들어가서 -v 입력 시

 bash-4.4# node -v

bash: node: command not found

이렇게 조회가 됩니다..


(windows vscode로 하고 있습니다.)

답변 2

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 정화님! 질문 잘 해주셨습니다:)

현재 입력해주신 Dockerfile을 보시면 FROM openjdk:17-jdk라고 입력되어 있어서

node -v 라는 명령어가 제대로 인식되지 않은 걸로 보입니다!

FROM node라고 입력하신 뒤에

컨테이너 내부로 들어가셔서 node -v라고 입력 한 번 해보시겠어요~??

해보시고 잘 안 되시면 다시 한 번만 댓글 남겨주세요:D

박정화님의 프로필 이미지
박정화
질문자

안녕하세요 : )
FROM node 작성 후
build, run 하고 컨테이너 내부에서
버전 확인해도 오류가 나와서 방법 찾다가 해결하였습니다.

PS C:\Users\USER\Documents\docker-practice> cat Dockerfile

FROM openjdk:17-jdk

ENTRYPOINT [ "/bin/bash", "-c", "sleep 500" ]

cat으로 조회하니 변경안된거 확인되어
새로고침 후 했더니 버전 확인되었습니다.

감사합니다!!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 박정화님.

Dockerfile에서 ENTRYPOINT와 CMD의 사용 방법으로 인해 발생하는 문제에 대해 고민 중이시군요. ENTRYPOINT는 컨테이너가 시작할 때 항상 실행되는 명령을 지정하며, CMD는 ENTRYPOINT의 기본 파라미터를 지정하거나 ENTRYPOINT가 없을 경우 실행할 명령을 지정합니다.

문제 분석 및 해결

시도하신 내용

  • ENTRYPOINT ["/bin/bash", "-c", "sleep 500"] 은 컨테이너 시작 시 bash shell에서 500초 동안 대기하게 하는 명령을 지정하는 것입니다. 이는 정상적인 사용 사례이며, ENTRYPOINT를 활용하여 컨테이너가 종료되지 않고 유지되도록 할 수 있습니다.
  • CMD [ ] 부분은 특별히 지정할 명령어가 없는 경우 또는 ENTRYPOINT만으로 충분한 경우 비워둘 수 있습니다.

현재 상황

  • Windows 환경에서 Docker를 사용 중이라면, 파일 경로 설정 및 명령어 구문에 유의해야 합니다. Windows에서는 경로 구분자를 잘못 사용하면 오류가 발생할 수 있습니다. 그러나, Bash는 Unix 계열의 쉘이므로 Docker의 Linux 환경에서는 관련 없이 잘 동작해야 합니다.

추가 설정 및 파라미터

  • CMD가 빈 배열로 설정된 것은 문제가 없지만, ENTRYPOINT와 관련하여 추가로 인자가 필요하다면 CMD를 통해 전달할 수 있습니다.

관련된 질문 중 비슷한 문제를 해결한 사례를 아래 링크에서 확인하실 수 있습니다:

이 정보가 도움이 되길 바라며, 여전히 문제가 있거나 추가적인 질문이 있다면 언제든지 말씀해 주세요!

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.