ECR에서 drone CI로 pull image
현재 자신의 회사에서 개발을 수탁하면서 개인 사업주로서 부업을 하면서 계약직으로 일하고 있다revenue-hack.
https://www.praha-inc.com/
이런 회사가 있어요.
그럼 이번에drone CI에서 ECR에서pull, 그렇게
docker run
컨테이너를 싣는 방법을 얘기해 봅시다.대상 사용자
drone CI 정보
drone CI에 대한 다양한 보도가 있습니다. 자세한 설명은 하지 않고, 도커 컨테이너 안에서 임무를 수행하는 CI입니다.
따라서drone CI 자체는 docker가 만든 것으로 docker in docker처럼 임무를 수행하는 것 같다.
그리고 2019-03-11 지금은
v1.0.0-rc.6
때문에 조금 더 있다ga
~- https://github.com/drone/drone
이번 드론 CI 사용법
이번에drone CI의 사용법으로 다음과 같은 간단한 기교를 시도해 봤습니다.
drone CI에서 imge build &push
먼저 docker CI로 이미지 메이킹을 수행하는 방법입니다.
다음은
.drone.yml
(build 작업만 있음)입니다.develop-build:
group: build
image: plugins/ecr
region: ap-northeast-1
registry: registry uri
environment:
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
secrets: [ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY ]
dockerfile: ./Dockerfile
tags: ${DRONE_COMMIT:0:8}
when:
branch: develop
event: push
이미지는 공식 플러그인plugins/ecr
이기 때문에 그것을 사용합니다.job의 키
region
, registry
, repo
를 지정합니다.key
value
설명
group
build
같은value로 그룹을 나누면 병렬 처리할 수 있습니다
region
ap-northeast-1(도쿄)
ECR 범위
registry
registry uri
ECR의 registry uri
environment
환경 변수
ECR 등록에 필요한 IAM 로그인 정보(access key, secret key)
dockerfile
./Dockerfile
Docker file의 위치
tag
${DRONE_COMMIT:0:8}
docker tag.${DRON COMMIT:0:8} 에서commiit hash 상위 8 비트 사용 가능
when
실행 시기
이번 상황에서 개발자 지점이push가 되면 이job가 실행됩니다
그리고 시크릿에 등록
aws_access_key_id
하고 aws_secret_access_key
하세요.https://docs.drone.io/user-guide/pipeline/secrets/
이 job을 실행하면 Registry URI에 이미지가 표시됩니다.
drone CI에서 image pull
이번 주제도 내용이 있다.
push는 좋은 물건을 어떻게 pull해야 좋을지 고민입니다.
결국 이미지를 만들었다.
- https://hub.docker.com/r/revenuehack/drone-ecr-auth
- https://github.com/revenue-hack/drone-ecr-auth
이걸로 ECR 인증을 통과한 후
scripts
와commands
무엇이든 좋습니다.하지만 물론 동일한 과정에서만 인증을 지속할 수 있으니 주의하세요.
develop-deploy:
group: deploy
image: revenuehack/drone-ecr-auth
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY
- AWS_REGION=ap-northeaxt-1
secrets: [ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY ]
commands:
- $(aws ecr get-login --region ap-northeast-1 --no-include-email)
- docker pull registry_url:${DRONE_COMMIT:0:8}
- docker run -d -p 8181:80 --net net-network_default --name=web_development registry_url:${DRONE_COMMIT:0:8}
when:
branch: develop
event: push
화면에 방금 거revenuehack/drone-ecr-auth
를 지정해 주세요.그리고 환경 변수를 만드는 것을 잊지 마라.
그리고 마지막으로
commands
에서 $(aws ecr get-login --region ap-northeast-1 --no-include-email)
할게요.인증을 통과할 수 있기 때문에 그곳에서pull이나run을 할 수 있고 마음대로 할 수 있다.
지금까지 드론 CI에서 ECR에서 pull로 나온 방법입니다.
Reference
Reference
이 문제에 관하여(ECR에서 drone CI로 pull image), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/revenue-hack/items/61293125c98606a20d9b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)