Kaniko를 사용하여 컨테이너 이미지 빌드
CI/CD 서비스가 컨테이너로 실행되는 경우 해당 서비스에서 컨테이너 이미지를 빌드하는 방법은 무엇입니까? Docker의 Docker는 호스트에 근본적인 보안 위험을 생성하는 간단하지만 위험한 접근 방식입니다.
kaniko - 호스트의 Docker 소켓 없이 컨테이너 이미지를 빌드하는 솔루션 중 하나입니다.
다음 예제는 Docker에서 컨테이너 이미지를 빌드하는 방법을 보여줍니다.
도커 예제
컨테이너 이미지 빌드 및 컨테이너 레지스트리로 푸시
전제 조건:
push
권한이 있는 컨테이너 레지스트리입니다. 이 예제 스크립트는 Docker에서 최소 컨테이너 이미지를 생성하고 컨테이너 레지스트리에 푸시합니다.
스크립트를 실행하기 전에 필요에 맞게 변수를 편집하십시오.
#!/usr/bin/env bash
REGISTRY_IP="127.0.0.1"
REGISTRY_DOMAIN="reg.myharbor.io"
REGISTRY_USER="admin"
REGISTRY_PSWD="Harbor12345"
# add registry's credential into config.json
cat > config.json << EOF
{"auths": {"${REGISTRY_DOMAIN}": {"auth": "$(echo -n ${REGISTRY_USER}:${REGISTRY_PSWD} | base64)"}}}
EOF
# create Dockerfile
cat > Dockerfile << EOF
FROM docker.io/library/alpine:latest
ENTRYPOINT ["/bin/bash", "-c", "echo hello"]
EOF
# configure the kaniko arguments
KANIKO_WORKSPACE="/workspace"
IMAGE_TAG=$(date "+%m-%d-%H-%M-%S")
DESTINATION="${REGISTRY_DOMAIN}/library/demo:${IMAGE_TAG}"
KANIKO_TAG="v1.8.0"
KANIKO_CMD="--dockerfile=${KANIKO_WORKSPACE}/Dockerfile --context=dir://${KANIKO_WORKSPACE} --destination=${DESTINATION} --skip-tls-verify --skip-tls-verify-pull --verbosity=debug"
# Run the kaniko container to perform `docker build` in Docker.
docker run --rm -it \
-v "${PWD}":${KANIKO_WORKSPACE} \
-v "${PWD}"/config.json:/kaniko/.docker/config.json \
--workdir ${KANIKO_WORKSPACE} \
--add-host ${REGISTRY_DOMAIN}:${REGISTRY_IP} \
gcr.io/kaniko-project/executor:${KANIKO_TAG} "${KANIKO_CMD}"
쿠버네티스 예시
미정
Reference
이 문제에 관하여(Kaniko를 사용하여 컨테이너 이미지 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/huang06/building-container-image-using-kaniko-1iaa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)