GiitLab CI에서 Docker 이미지를 만들기 전에 고민이 많았던 말.
고민하다
어느 날, GiitLab CI로 Docker 이미지를 만들고 싶었어요.
좋아, 이렇게 (이하 참조.gitlab-ci.yml
가 예다.저의 고질병""
이 너무 많은 것을 용서해 주세요.)stages:
- build
- docker
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
실패하겠죠.
그럼 이렇게stages:
- build
- docker
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- service docker start
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
이래도 안 돼.
그때?
그럼 이렇게 할까요?stages:
- build
- docker
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: ubuntu
stage: docker
script:
- "apt update ; apt -y install apt-transport-https ca-certificates curl"
- "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"
- "sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""
- "apt update ; apt-get -y install docker-ce"
- service docker start
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
아니야.
그럼 StackOverflow 물어보세요.
여기까지 왔습니다.투고 버튼의 볼록점이 이미 끝났다.
하지만 구글에 먼저 가보는 게 좋을 것 같아요.
있다
네?
그리고 있잖아 docs.gitlab.com
네이것.
그럼 어떡하지?
그럼 어떡하지?
먼저 답을 표시합니다.stages:
- build
- docker
# 追加行 始め
variables:
DOCKER_DRIVER: overlay
services:
- docker:dind
# 追加行 終わり
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
아, 드디어 다 했구나.
댓글만 빼고 네 줄이면 돼요.DOCKER_DRIVER=overlay
의 환경 변수와 docker:dind
의 Docker 이미지가 제공하는 서비스를 사용한다고 발표하면docker build
됩니다.
최후
나는 몇 시간이 걸려서야 비로소 이 방법에 도달했다.
투덜거리는 게 중요하죠.
Reference
이 문제에 관하여(GiitLab CI에서 Docker 이미지를 만들기 전에 고민이 많았던 말.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Lesmiscore/items/8ec36e910feda3ce280b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
stages:
- build
- docker
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
stages:
- build
- docker
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- service docker start
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
stages:
- build
- docker
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: ubuntu
stage: docker
script:
- "apt update ; apt -y install apt-transport-https ca-certificates curl"
- "curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -"
- "sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\""
- "apt update ; apt-get -y install docker-ce"
- service docker start
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
네?
그리고 있잖아
docs.gitlab.com
네이것.그럼 어떡하지?
그럼 어떡하지?
먼저 답을 표시합니다.stages:
- build
- docker
# 追加行 始め
variables:
DOCKER_DRIVER: overlay
services:
- docker:dind
# 追加行 終わり
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
아, 드디어 다 했구나.
댓글만 빼고 네 줄이면 돼요.DOCKER_DRIVER=overlay
의 환경 변수와 docker:dind
의 Docker 이미지가 제공하는 서비스를 사용한다고 발표하면docker build
됩니다.
최후
나는 몇 시간이 걸려서야 비로소 이 방법에 도달했다.
투덜거리는 게 중요하죠.
Reference
이 문제에 관하여(GiitLab CI에서 Docker 이미지를 만들기 전에 고민이 많았던 말.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Lesmiscore/items/8ec36e910feda3ce280b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
stages:
- build
- docker
# 追加行 始め
variables:
DOCKER_DRIVER: overlay
services:
- docker:dind
# 追加行 終わり
build:
image: ubuntu
stage: build
script:
- echo some build tasks here
artifacts:
paths:
- "result.file"
docker:
image: docker
stage: docker
script:
- "sh -c \"$DOCKER_LOGIN_COMMAND\" > /dev/null"
- "docker build -t a-docker-image ."
- "docker push a-docker-image"
나는 몇 시간이 걸려서야 비로소 이 방법에 도달했다.
투덜거리는 게 중요하죠.
Reference
이 문제에 관하여(GiitLab CI에서 Docker 이미지를 만들기 전에 고민이 많았던 말.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Lesmiscore/items/8ec36e910feda3ce280b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)