도커 컨테이너에 패키지를 설치하는 방법을 알고 싶습니다. 나의 사용법은, 나는 docker 에이전트 템플리트를 포함하여 몇 가지 종류의 에이전트가있는 젠킨스 서버를 가지고 있는데, 이는 가상 컴퓨터 환경이 필요하지 않으면 기본적으로 레이블없이 각 빌드에 대해 도커 컨테이너를 만들고 사용합니다. 문제는 가능하면 안전한 방법으로 이러한 도커 컨테이너에 빌드하기 전에 종속성을 설치하는 것입니다. 별도의 요구 사항을 가진 다른 프로젝트에 대해 각각 많은 이미지를 갖는 것이 좋은 아이디어라고 생각하지 않으며 일부 프로젝트가 종속성을 필요로 할 때마다 단일 이미지를 수정하면 그 중 많은 이미지가 필요할 경우를 대비하여 이미지를 부 풀릴 것입니다. 하지만 일반적으로 보안상의 이유로 컨테이너 내부에는 루트 액세스가 없습니다. 이 상황에 대처하는 방법/가능한 옵션은 무엇입니까?도커 컨테이너에 패키지를 설치하십시오.
1
A
답변
1
젠킨스에서는 에이전트가 생성되는 고정 이미지를 지정할 수 있습니다.
예 : 당신이 필요한 종속성을 포함 dockerhub에 공공 이미지를 찾을 수없는 경우
agent {
docker {
image 'maven:3-alpine'
label 'my-defined-label'
args '-v /tmp:/tmp'
}
}
, 당신은 사용자 정의 이미지를 만들어야합니다. 그렇게하는 방법은 Dockerfile을 생성하고 Dockerfile에 종속물을 설치하는 것입니다.
FROM base-image
RUN apt-get update && apt-get install ...
그런 다음 에이전트를 에이전트를 구축하거나, 이미지를 구축하고 젠킨스 호스트에 넣고 규정에 위의 파이프 라인 구문을 사용하려면이 Dockerfile을 사용 중.
당신은 직접 Dockerfile를 사용할 수 있습니다
agent { dockerfile { dir 'path-to-Dockerfile' } }
관련 문제
- 1. docker-compose.yml에서 docker 컨테이너에 패키지를 설치하십시오.
- 2. 도커 컨테이너에 rdiff 설치
- 3. CoreOS 컨테이너에 도커 설치
- 4. rhel에있는 도커 컨테이너에 SSH
- 5. 도커 컨테이너에 작곡가 설치
- 6. 도커 컨테이너에 옵션을 건네기
- 7. 브라우저에서 도커 컨테이너에 액세스하는 도커 이미지
- 8. JanusGraph를 Cassandra 노드/컨테이너에 설치하십시오.
- 9. 아카이브에 R 패키지를 설치하십시오.
- 10. Windows에 theano 패키지를 설치하십시오.
- 11. 타이핑이없는 npm 패키지를 설치하십시오.
- 12. sys.path에 python 패키지를 설치하십시오.
- 13. easy_install으로 스플라인 패키지를 설치하십시오.
- 14. 인터넷없이 NPM 패키지를 설치하십시오.
- 15. 다른 패키지를 VS2017에 설치하십시오.
- 16. 스냅인 패키지를 설치하십시오.
- 17. UWP에 Nuget 패키지를 설치하십시오.
- 18. Fedora 21에 도커 1.11을 설치하십시오.
- 19. 도커 컨테이너에 chef-server 설치
- 20. Kafka-connect는 도커 컨테이너에 로그인합니다.
- 21. 도커 호스트를 컨테이너에 연결하는 방법
- 22. 도커 컨테이너에 연결할 수 없습니다.
- 23. 인트라넷에서만 도커 컨테이너에 액세스하는 방법
- 24. 도커 컨테이너에 로컬 오디오 녹음
- 25. 도커 컨테이너에 토네이도 서버 디버깅
- 26. 도커 컨테이너에 sed 명령 실행
- 27. nock 공유를 도커 컨테이너에 설치
- 28. 도커 컨테이너에 D 드라이브 만들기
- 29. 다른 컨테이너에서 도커 컨테이너에 액세스
- 30. C에서 도커 컨테이너에 연결 문자열
잘, 솔직히 말해서, 나는 그 스크립트의 보안에 대해 확실하지 않다. jenkinsfile을 작성하고 커밋 할 수있는 사람은 파이프 라인 스크립트를 사용하여 마스터 노드를 손상 시키거나 실행중인 고정 노드를 손상시킬 수 있습니다. 내가 맞습니까? 나는 도커 파이프 라인을 사용하고 있지 않지만 각 빌드가 기본적으로 명시 적으로 요청하지 않고 자체 컨테이너에서 실행되는 클라우드 도커 플러그인이지만 여러 템플릿을 만들지 않는 한 하나의 이미지 만 가진다. –
올바르게 이해한다면 잘 모르겠지만 현재 파이프 라인을 배우지 않았기 때문에 파이프 라인을 스크립팅 할 수 있으며 그 스크립트는 너무 제한되어 있지 않으므로 이론적으로 모든 노드와 함께 할 수 있습니다. 스크립트 조각이 계속 실행됩니다. 맞습니까? 따라서 도커 컨테이너를 실행할 수는 있지만 보안 경계로 완전히 사용할 수는 없습니다. 내가 말한 것이 잘못 되었다면 그 목적을 위해 파이프 라인을 사용할 것입니다. –