도구 상자로서의 도커

2902 단어 devopsdocker
Docker는 애플리케이션 컨테이너화를 위한 가장 인기 있는 소프트웨어입니다. 컨테이너를 사용하면 일관되고 반복 가능한 방식으로 애플리케이션 스택을 쉽게 패키징, 릴리스, 배포 및 실행할 수 있습니다. 그러나 Docker에는 애플리케이션 스택을 패키징하고 오케스트레이션하는 것 이상의 기능이 있습니다. Docker를 사용하여 CI/CD 파이프라인에서 코드를 빌드하고 스크립트를 실행하고 단계를 실행할 수도 있습니다. 컴퓨터에 도구를 설치할 필요 없이 docker를 사용하여 도구를 사용해 볼 수도 있습니다.

컨테이너 내에서 CI/CD 단계 실행



실행 중인 도커 컨테이너 내에서 파이프라인의 실행 단계를 지원하는 Jenkins, Bitbucket 및 GitLab과 같은 많은 빌드 도구가 있습니다. 여기에는 다음과 같은 이점이 있습니다.
  • node, maven, java 등과 같은 빌드 종속성을 더 이상 빌드 서버에 설치할 필요가 없습니다
  • .
  • 응용 프로그램 팀이 빌드 종속성을 지시하고 유지할 수 있음
  • 개발자는 빌드 서버와 정확히 동일한 방식으로 코드를 빌드할 수 있습니다
  • .

    일반적으로 파이프라인의 각 단계는 컨테이너로 실행할 이미지를 정의할 수 있습니다. 다음은 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의 경우, 스크립트를 실행하거나 도구 또는 생각할 수 있는 다른 것을 실험하는 경우 다음 번에 설치 및/또는 작업을 원할 때 자유롭게 도커 이미지를 사용해 보십시오.

    좋은 웹페이지 즐겨찾기