2014-10-20 1 views
6

Docker를 사용하여 지속적인 배포 전략을 수립하고 있습니다. 내 코드는 Github에서 호스팅되며 Docker 레지스트리는 git으로 푸시 할 때 자동 빌드를 시작합니다. 기본 설정은 master로 push하면 빌드를 시작하고 "latest"태그로 이미지를 생성하는 것입니다. 이것은 괜찮지 만 git에서 커밋에 태그를 추가하고이를 기반으로 이미지를 만들 수 있기를 원합니다. Docker 레지스트리 사이트의 일부 기능인 것 같습니다. 자동 빌드 설정 편집 페이지에서 유형에 "태그"를 선택하고 정적 태그 이름을 제공 할 수 있습니다.공용 레지스트리의 git 태그를 기반으로 Docker 이미지를 만들려면 어떻게해야합니까?

어떻게 Docker 태그 이름을 Git 태그 이름과 같게 할 수 있습니까?

목표는 특정 버전에 태그를 추가하여 버전 기록이 있도록하는 것입니다.

+0

해당 질문에 대한 의견이 있으십니까? – Luc

답변

2

"자동 빌드"설정에서 Docker 레지스트리에서이 작업을 수행 할 수 있습니다. 기본적으로 이것은 "master"브랜치를 기반으로 "latest"빌드를 만들지 만 특정 git 태그에 대해서도 자동 빌드를 추가 할 수 있습니다. 아래 그림은 저도 같은 문제가 발생했습니다

+4

맞습니다. 하드 코딩 된 이름을 가진 태그를 만드는 대신,'git push --tags'에 모든 태그를 추가하고 Docker 이미지 태그로 표시되도록하고 싶습니다. – remmelt

0

관련 화면을 표시하고 나는이 플러그인을 사용하여이 작업을 정리했습니다

https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin

이 아주 예쁜 해결책이 아니다을 그러나 그것은 그렇게 작동합니다

1) 실행 쉘 : echo TAG=${GIT_BRANCH#*/} > docker_tag

2) 를 주입 환경 변수 속성 파일 경로 :

docker tag <image> <image>:$(git rev-parse --short HEAD)" 

이 제공 : docker_tag

3) 명령 줄에서 https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin

2

가장 간단한 솔루션에 ${TAG}를 사용하여 중첩 된 자식 반전 명령입니다 너 예.

<image> = myImage >> myImage:67df348 
관련 문제