Gitlab CI 및 Kaniko, Docker 이미지 빌드
2957 단어 docker
소개
Jérôme Petazzoni는 그렇게 하는 것을 강력히 권장하지 않지만 컨테이너 또는 Kubernetes 클러스터 내부의 Dockerfile에서 컨테이너 이미지를 빌드할 수 있습니다. 그는 컨테이너 또는 Kubernetes 클러스터 내부에서 Dockerfile을 사용하여 컨테이너 이미지를 빌드하지 않는 이유에 대해 읽을 수 있는 자세한 블로그here를 작성했습니다.
문맥
GitLab의 CI/CD를 사용하는 방법에 대한 N개의 블로그를 얻을 수 있습니다. 여기에서 kaniko 을 사용하여 동일한 GitLab 레지스트리에 빌드 및 저장할 Docker 이미지용 CI/CD를 만들고 파일을 확장하는 쉬운 참조 지점을 볼 수 있습니다. 이 파일은 .gitlab-ci.yml이라는 이름으로 사용 가능한 템플릿을 사용하여 GitLab의 개별 프로젝트에서 생성해야 합니다.
카니코란?
Note: Kaniko is not an officially supported Google product
컨테이너 또는 Kubernetes 클러스터 내부의 Dockerfile에서 컨테이너 이미지를 빌드하는 도구입니다. 각 Dockerfile 명령을 실행하는 것은 Docker 데몬에 의존하지 않습니다.
자체 제한 사항이 있지만 Docker-in-Docker를 사용할 위험이 없습니다.
전제 조건
자동 데브옵스용 CI YAML
# .gitlab-ci.yml
variables:
GIT_SSL_NO_VERIFY: "true"
before_script:
- echo "Random image creation, user = $GITLABUSER"
stages:
- build
build_image:
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
stage: build
script:
- ls
- pwd
- export CI_REGISTRY_IMAGE=mygitlab.com/base-project/subproject/project
- echo "{\"auths\":{\"mygitlab.com\":{\"username\":\"gitlab-ci-token\",\"password\":\"$CI_BUILD_TOKEN\"},\"repository.xyz-company.io\":{\"username\":\"user\",\"password\":\"123random\"}}}" > /kaniko/.docker/config.json
- wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem | xargs cat lets-encrypt-x3-cross-signed.pem >> /kaniko/ssl/certs/ca-certificates.crt
- /kaniko/executor --skip-tls-verify --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:$CI_BUILD_REF_NAME
변수: 변경되지 않고 gitlab-ci.yml 파일의 여러 위치에서 사용되는 정적 값입니다.
before_script: 인쇄하려는 명령 또는 echo 문 집합
단계: 단계는 동일한 작업 또는 작업 집합에 대한 코드 블록입니다. 빌드, 테스트, 정리, 삭제, 배포 등. 이것은 YAML에 정의된 순서대로 실행됩니다. 작업(코드 블록) 앞의 점(.)은 이를 비활성화하고 자동 또는 수동 작업으로 실행되거나 사용할 수 없습니다.
작업(각 코드 블록): 개별 단계의 각 블록에는 키-값 쌍 또는 명령 집합이 포함됩니다. 특정 단계와 스크립트 블록에서 해당 기능을 수행하는 데 필요한 모든 명령 집합을 가리키도록 각 코드 블록을 정의할 수 있습니다. 자동 및 수동 실행이 가능합니다(버튼을 클릭하여 수동으로 작업 시작). 암호, 액세스/비밀 키와 같은 변수는 비밀 변수 섹션의 CI/CD 설정에서 정의할 수 있으므로 일반 텍스트 형식으로 사용할 수 없습니다.
참고: GitLab 도커 레지스트리를 사용하고 도커 이미지를 GitLab 프로젝트에 저장하려는 경우; 이것은 기본적으로 비활성화되어 있으며 일반 설정 섹션에서 활성화해야 합니다.
Reference
이 문제에 관하여(Gitlab CI 및 Kaniko, Docker 이미지 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rizwankh_24/gitlab-ci-kaniko-to-build-docker-images-54ch텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)