Skip to content
CatBus
Go back

gitlab-runner container에서 Command not found가 발생하는 문제

🚫 현상


💡원인

이 문제는 GitLab Runner 컨테이너가 실행될 때 entrypoint 스크립트에 의해 예상치 못한 명령어(tail 등)가 실행되면서 발생한 오류입니다. 이를 해결하기 위해 entrypoint: [""]를 추가하면, 컨테이너의 기본 엔트리포인트 동작이 비활성화되고 직접 지정한 명령어만 실행됩니다.

이유와 원리

  1. 기본 Entrypoint와 CMD:
    • Docker 이미지는 보통 ENTRYPOINT와 CMD를 지정할 수 있습니다.
    • ENTRYPOINT는 컨테이너가 실행될 때 무조건 실행되는 스크립트나 명령어를 정의합니다.
    • CMD는 ENTRYPOINT와 함께 전달될 추가 인자를 정의하거나, ENTRYPOINT가 없을 경우 기본 명령어로 사용됩니다.
  2. 문제의 원인:
    • GitLab Runner의 Docker 이미지는 ENTRYPOINT로 기본 동작이 정의되어 있습니다. 특정 상황에서는 이 ENTRYPOINT 스크립트가 tail 명령어를 사용하거나 잘못된 실행 환경을 유발할 수 있습니다.
    • tail not found라는 오류는 컨테이너 내부에서 tail 명령어를 실행하려 했지만, tail이 설치되어 있지 않거나 경로 설정이 올바르지 않은 경우 발생합니다.
  3. entrypoint: [""]의 효과:
    • entrypoint: [""]를 추가하면 Docker Compose는 기본 이미지를 사용할 때 지정된 ENTRYPOINT를 비활성화합니다.
    • 이로 인해 컨테이너가 실행될 때 CMD 또는 command에서 지정한 명령만 실행됩니다.

해결 방법의 작동 방식

주의점

  1. entrypoint: [""]로 ENTRYPOINT를 비활성화했을 때, 컨테이너의 의도된 기본 동작이 실행되지 않을 수 있습니다. 따라서 명령어(command 또는 CMD를 통해})를 명확히 지정해야 합니다.

🛠 해결책


🤔 회고


📚 Reference


Share this post:

비슷한 글

gitlab-runner이 글—

본문을 Xenova/multilingual-e5-small 로 임베딩하고, 그 벡터를 PCA 로 32축에 눌러 왼쪽 막대로 그렸습니다. 비슷한 글은 지문도 닮습니다 — 위아래를 견줘 보세요. 계산은 빌드 때 끝나고 벡터는 브라우저로 오지 않습니다.

Previous Post
[Troubleshooting] gitlab-runner에서 panic: EOF [recovered]가 발생하는 문제
Next Post
[Troubleshooting] gitlab-runner가 연결하려 할 때 403 error