도구 상자로서의 도커
컨테이너 내에서 CI/CD 단계 실행
실행 중인 도커 컨테이너 내에서 파이프라인의 실행 단계를 지원하는 Jenkins, Bitbucket 및 GitLab과 같은 많은 빌드 도구가 있습니다. 여기에는 다음과 같은 이점이 있습니다.
일반적으로 파이프라인의 각 단계는 컨테이너로 실행할 이미지를 정의할 수 있습니다. 다음은 maven을 사용하는 빌드 단계에 대한 GitLab 파이프라인 YAML의 예입니다.
image: maven:latest
stages:
- build
build:
stage: build
script:
- mvn package
로컬에서 빌드 단계 실행
CI/CD 파이프라인 중에 실행되는 동일한 빌드 단계를 로컬에서도 실행할 수 있습니다. 이는 소스 위치를 매핑하는 컨테이너 및 볼륨을 실행하여 도커를 통해 수행할 수 있습니다. 몇 가지 예는 다음과 같습니다.
docker run --rm -v $(PWD):/usr/src/app -w /usr/src/app node:4 npm install
docker run --rm -v $(PWD):/usr/src/app -w /usr/src/app maven:3.5.3 mvn clean install
docker run --rm -v $(PWD):/usr/src/app -w /usr/src/app gradle:4.7 gradle clean build
스크립트 실행
Docker는 스크립트 또는 데이터 마이그레이션 유틸리티와 같이 릴리스에 필요한 다른 작업을 실행하는 데에도 사용할 수 있습니다. 이러한 변경 사항은 필요한 릴리스와 함께 버전이 지정된 Docker 이미지로 패키징할 수 있습니다. 이를 통해 자동화를 통해 릴리스 설치를 반복 및 테스트할 수 있습니다. Docker를 통해 이러한 작업을 패키징하고 실행하면 해당 단계가 Docker 이미지 내에서 작성되기 때문에 설치 플레이북의 필요성을 사실상 제거할 수 있는 기능이 제공됩니다. 스크립트가 "migration-utils"라는 이미지에 패키징된 경우 스크립트를 실행하고 매개변수를 전달할 수도 있습니다. 예를 들어 "migration-utils"이미지에서 "runFileMigration.sh prod"라는 스크립트를 실행하려면 다음을 실행합니다.
docker run --rm -v local-dir:/path/to/files --entrypoint=runFileMigration.sh migration-utils prod
진입점을 재정의할 때 이제 "prod"인수가 정의된 진입점에 대한 인수로 전송되는 방식에 유의하십시오. 이 예제에서는 스크립트가 액세스해야 하는 파일이 있는 위치를 나타내는 볼륨을 지정합니다.
도구 실험
저는 최근에 쿠버네티스 매니페스트의 정적 분석을 실행하는 도구의 데모를 살펴보는 웨비나에 참석했습니다. 이 도구는 매우 흥미로워 보였고 github에서 프로젝트 위치에 대한 링크를 제공했습니다. README에는 도구 설치를 위한 다양한 설치 지침이 있습니다. Windows, Linux, Mac(Home Brew) 및 도커 이미지에 대한 옵션이 있었습니다. 나는 즉시
docker run
명령에 대한 지침을 복사/붙여넣고 내 특정 파일 위치에 대한 몇 가지 사항을 변경했습니다. 그런 다음 출력을 비교하고 대조하기 위해 유사한 도구를 찾고 다른 것보다 기능이 마음에 드는지 확인했습니다. 각각의 경우에 도커 이미지를 제공하면 그냥 실행합니다. 이는 두 가지 이점을 제공합니다. 첫 번째는 내 컴퓨터에 이러한 각 도구를 설치한 다음 마음에 들지 않으면 제거할 필요가 없다는 것입니다. 다른 하나는 docker run
명령을 통해 작업을 실행하고 원하는 방식으로 다양한 매개변수와 설정을 가져오면 해당 명령을 CI 파일의 해당 선언으로 쉽게 변환할 수 있다는 것입니다.결론
이미지 빌드 및 컨테이너화된 애플리케이션 실행 이외의 용도로 Docker를 사용하는 더 많은 예가 있습니다. CI/CD의 경우, 스크립트를 실행하거나 도구 또는 생각할 수 있는 다른 것을 실험하는 경우 다음 번에 설치 및/또는 작업을 원할 때 자유롭게 도커 이미지를 사용해 보십시오.
Reference
이 문제에 관하여(도구 상자로서의 도커), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/edlegaultle/docker-as-a-toolbox-26jo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)