Drone 플러그인 - Docker 플러그인
6253 단어 Drone
Docker 플러그인은 미러를 구성하고 Docker registry에 게시할 수 있습니다.다음 pipeline 구성에서는 Docker 플러그인을 사용하여 미러를 구축하고 게시합니다.
pipeline:
docker:
image: plugins/docker
username: kevinbacon
password: pa55word
repo: foo/bar
tags: latest
여러 태그의 예제 구성을 사용합니다.
pipeline:
docker:
image: plugins/docker
repo: foo/bar
- tags: latest
+ tags:
+ - latest
+ - 1.0.1
+ - 1.0
파일
.tag
의 예제 구성(쉼표로 구분된 tag 목록)을 사용합니다.pipeline:
build:
image: golang:1.10.0-alpine
commands:
- [...]
+ - echo -n "5.2.6,5.2.4" > .tags
docker:
image: plugins/docker
repo: foo/bar
- tags: latest
build_args
매개변수를 사용한 예제 구성:pipeline:
docker:
image: plugins/docker
repo: foo/bar
+ build_args:
+ - HTTP_PROXY=http://yourproxy.com
대체 Dockerfile의 예제 구성을 사용하려면 다음과 같이 하십시오.
pipeline:
docker:
image: plugins/docker
repo: foo/bar
- dockerfile: Dockerfile
+ dockerfile: path/to/Dockerfile
사용자 정의registry의 예제 구성을 사용하려면 다음과 같이 하십시오.
pipeline:
docker:
image: plugins/docker
- repo: foo/bar
+ repo: index.company.com/foo/bar
+ registry: index.company.com
인라인 자격 증명(inline credentials)의 예제 구성을 사용합니다.
pipeline:
docker:
image: plugins/docker
+ username: kevinbacon
+ password: pa55word
repo: foo/bar
Drone의 웹 페이지를 통해 추가된 자격 증명
secrets
의 예제 구성을 사용합니다.pipeline:
docker:
image: plugins/docker
- username: kevinbacon
- password: pa55word
repo: foo/bar
+ secrets: [ docker_username, docker_password ]
자동 레이블 지정 Autotag
Docker 플러그인은 자동으로 거울에 tag를 만들 수 있도록 설정할 수 있습니다.이 기능을 켜고 이벤트 형식이 tag일 때 플러그인은 표준 major,minor,release 관례를 사용하여 거울로 tag를 만듭니다.예를 들면 다음과 같습니다.
1.0.0
생성dockertag1
,1.0
,1.0.0
1.0.0-rc.1
docker tag 생성1.0.0-rc.1
샘플 구성:
pipeline:
docker:
image: plugins/docker
repo: foo/bar
+ auto_tag: true
secrets: [ docker_username, docker_password ]
태그 접미사를 사용한 예제 구성:
pipeline:
docker:
image: plugins/docker
repo: foo/bar
+ auto_tag: true
+ auto_tag_suffix: linux-amd64
secrets: [ docker_username, docker_password ]
자동 표시
auto_tag
는 고의로 간단하고 맞춤형으로 만들 수 없는 것이므로 현재pull 요청을 받아들여 맞춤형 논리를 추가하지 않습니다.다단계 빌드(Multi-stage builds)
Docker 플러그인은 공식 문서에 설명된 Dockerfile에 정의된 특정 단계에서 구축을 중지할 수 있습니다.
target
속성이 정의되지 않은 경우 Docker 플러그인은 어느 단계에서도 중지되지 않으며 완전한 Docker 미러만 구성됩니다.The Docker plugin allow to stop build at a specific stage defined in Dockerfile as described in the official docs. If the target attribute is not defined, the Docker plugin will not stop at any stage and build the full docker image.
Dockerfile 예:
FROM golang as builder
WORKSPACE /go/src/github.com/foo/bar
RUN CGO_ENABLED=0 GOOS=linux go build -o demo main.go
FROM scratch as production
COPY --from=builder /go/src/github.com/foo/bar/demo .
CMD ["./demo"]
FROM alpine as debug
COPY --from=builder /go/src/github.com/foo/bar/demo .
CMD ["./demo"]
프로덕션 환경 Docker 미러의 예제 구성을 구성할 수 있습니다.
pipeline:
docker:
image: plugins/docker
repo: foo/bar
+ target: production
secrets: [ docker_username, docker_password ]
debug 환경 Docker 미러는 다음과 같이 구성됩니다.
pipeline:
docker:
image: plugins/docker
repo: foo/bar
+ target: debug
secrets: [ docker_username, docker_password ]
시크릿 브로셔
docker_username
: 이 사용자 이름으로 인증docker_password
: 이 비밀번호를 사용하여 인증Dockerfile