Dockerfile, Docker 이미지 및 재현 가능한 환경

Dockerfile, Docker 이미지 및 재현 가능한 환경

Docker 언급 버전 제어 및 공유에 대한 일반적인 문서 및 의견도커파일, 누구나 동일한 이미지를 만들 수 있도록 해야 합니다. 좋은 것 같지만 일반적으로 이와 같은 명령이 있습니다.

RUN apt-get update
pip install..

이로 인해 런타임에 따라 다른 항목/버전/패치가 설치될 수 있으며 디버깅이 어려워질 수 있습니다.

반면에 도커 이미지를 공유한다고 해서 버전 제어나 두 이미지의 차이점을 정확히 확인하는 등의 이점은 없습니다.

  • 개발 및 배포 시 어떤 것(dockerfile 또는 이미지)을 참조로 사용해야 합니까?
  • Dockerfile은 정확한 업데이트에 대한 자세한 내용을 제공해야 합니까? 그럼에도 불구하고, 실행 시기에 따라 기본 이미지가 달라질 수 있습니다.

답변1

나는 Dockerfile을 공유하는 것을 선호한다고 생각합니다. 당연히 FROMDockerfile의 문에 버전을 지정 해야 합니다 . 예를 들어, Ubuntu 버전마다 사용 가능한 패키지가 다릅니다.

시스템 또는 -dev 종속성의 경우 항상 최신 버전을 설치하기 위해 버전을 부동화할 수 있습니다.

데비안/우분투 패키지

apt-get예를 들어 설치된 프로그램의 경우 다음을 curl사용하여 버전 번호를 얻을 수 있습니다.

apt-cache policy curl | grep -oP 'Installed: \K\S+'

그런 다음 Dockerfile을 편집하여 다음과 같이 읽으십시오.

RUN apt-get install curl=7.47.0-1ubuntu2.2

파이썬

pipPython 버전은 설치된 패키지의 모든 버전 번호를 추출하고 다음과 같이 요구 사항 파일에 저장하여 얻을 수 있습니다 .

pip freeze > requirements.txt

그런 다음 Dockerfile에서 실행하십시오.

RUN pip install -r requirements.txt

관련 정보