CircleaCI에 컨테이너를 구축한 다음 Docker Hub에 넣습니다.
개요
Doke Hub의 구축은 매우 느리다!이런 경우가 많기 때문에 서큘레이션에 지었으면 좋겠다고 생각해서 환경을 구축해 봤어요.
yaml
전체는 다음과 같이 공개한다.
기사에서 간략한 부분을 발췌하여 소개하였다.
ryuichi1208/py-dep-kun
version: 2.1
executors:
py-builder:
machine:
enabled: true
image: circleci/classic:201808-01
docker_layer_caching: true
build_and_deploy:
executor:
name: builder
steps:
- run:
name: Build container
when: always
command: |
docker image build -t py-dep-kun .
- run:
name: Add container tag
when: always
command: |
docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASS}
docker tag py-dep-kun ${DOCKERHUB_USER}/${DOCKERHUB_REPOS}:${CIRCLE_TAG}
docker image push ${DOCKERHUB_USER}/${DOCKERHUB_REPOS}:${CIRCLE_TAG}
workflows
version: 2
defaultWorkflow:
jobs
- build_and_deploy:
filters:
tags:
only: /v.*/
branches:
ignore: /.*/
CircleaCI에 구축
다음은 CircleaCI에서 변수를 설정하는 것입니다.
CIRCLE_TAG에서 Git 태그에 지정된 값을 가져오고 설정합니다.
Docker Hub에서 볼 수 있는 태그는 이 값입니다.
환경 변수 사용
steps:
- run:
name: Build container
when: always
command: |
docker image build -t py-dep-kun .
- run:
name: Add container tag
when: always
command: |
docker login -u ${DOCKERHUB_USER} -p ${DOCKERHUB_PASS}
docker tag py-dep-kun ${DOCKERHUB_USER}/${DOCKERHUB_REPOS}:${CIRCLE_TAG}
docker image push ${DOCKERHUB_USER}/${DOCKERHUB_REPOS}:${CIRCLE_TAG}
tag가 첨부된push에만 반응하도록 설정합니다
다음과 같은 조건이 있다고 가정하다.
그 방법은 다음과 같다.
Workflow를 통해 작업 실행 제어
jobs
- build_and_deploy:
filters:
tags:
only: /v.*/
branches:
ignore: /.*/
이럴 때는 주의가 필요하다.tags는 반드시 모든 job에 기술해야 한다.
다른jobs에 탭을 쓰지 않으면 임무를 건너뛰거나 예상치 못한 동작이 발생합니다.
(솔직히 여기가 죽을 지경이야.)
- test_for_prd:
requires:
- build
filters:
tags:
only: /^v(\d\.){2}\d.*/
branches:
ignore: /.*/
- approval:
type: approval
requires:
- build
filters:
tags:
only: /^v(\d\.){2}\d.*/
branches:
ignore: /.*/
- deploy:
requires:
- approval
filters:
tags:
only: /^v(\d\.){2}\d.*/
branches:
ignore: /.*/
위에서 말한 바와 같이 지정을 통해 문제를 해결한다.(참고로 공식 문서에 주의사항이 적혀 있어서 무시했을 뿐이다.)
Reference
이 문제에 관하여(CircleaCI에 컨테이너를 구축한 다음 Docker Hub에 넣습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryuichi1208/items/a2dcfb8452a7f8b08e7d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)