2017-05-18 3 views
0

AwesomeTool의 최신 버전을 모든 repo에서 사용할 수있는 RPM이없는 도킹 컨테이너 (예 : CentOS 실행)에 통합하려고합니다 (또는 rpm이 최신 버전이 아니므로 최신 버전을 실행하고 싶습니다) .Docker 컨테이너 용/건물 용 소프트웨어 - 관리 방법은 무엇입니까?

그래서 나는 그것을 압축을 풀고 & &이 & & 메이크업 설치할 수 있도록 구성 awesometool.tar.gz을 다운로드 할 수 있습니다. 그런 다음 모든 위치, 라이브러리, 바이너리, 심볼릭 링크에 물건을 설치했음을 알았습니다. "도커 빌드"중 Docker 이미지로 모든 것을 가져와야합니다.

해야할까요 : 1) 도커 이미지 빌드 중에 빌드를하고, 필요한 모든 도구 (gcc, make 등)를 미리 설치하십시오. 설치 후 제거하십시오.
2) 이미지 외부에서 소프트웨어를 빌드 한 다음 이미지에 모든 설치 아티팩트를 복사하거나 패키지하는 방법을 찾습니다 (기본적으로 RPM을 만들 때 수행 할 작업).

(2)를 쉽게 만들 수있는 방법 중 하나는 PREFIX에 설치하여 도커 빌드 중에 이미지에 복사하는 것이지만 일치하는 위치에 복사해야하거나 공유 된 객체가 올바르게 링크되지 않을 수 있습니다.

(1)의 이점은 빌드가 Dockerfile에 캡슐화되어 있지만 매우 구체적인 정리가 수행되지 않는 한 이러한 모든 빌드 아티팩트가 놓여있을 수 있다는 것입니다.

(2)의 이점은 도커 이미지가 더 깨끗하지만 외부 빌드 단계가 필요하며 복사해야하는 모든 아티팩트를 추적하는 까다로운 작업입니다. 새로운 버전의 AwesomeTool이 풀어 놓고 그러므로 유지할 필요가있다.

다른 사람들이이 문제에 어떻게 접근합니까?

답변

0

옵션 (1)을 선택합니다. 빌드 아티팩트를 제거 할 수 있습니다. 여기에서 중요한 이슈는 이미지를 더 작게 만들기 위해 이러한 유물의 설치, 편집 및 제거가 단일 실행으로 수행된다는 것입니다.

옵션 (3)은 RPM 스펙을 작성하여 패키지를 빌드하고 런타임 종속성을 지정한 다음 RPM을 작성하고 yum으로 설치하는 것입니다.