3
已嘗試設置可以構建Docker鏡像的Gitlab CI,並且發現該DinD最初僅用於單獨的跑步者,並且提示Blog Post建議將很快共享跑步者啓用,Gitlab中的Docker-in-Docker用於構建Docker圖像並將其推送到註冊表的
運行DIND需要啓用在跑步者特權模式,這是在註冊澆道設置爲一個標誌,但找不到爲共享的運動員
已嘗試設置可以構建Docker鏡像的Gitlab CI,並且發現該DinD最初僅用於單獨的跑步者,並且提示Blog Post建議將很快共享跑步者啓用,Gitlab中的Docker-in-Docker用於構建Docker圖像並將其推送到註冊表的
運行DIND需要啓用在跑步者特權模式,這是在註冊澆道設置爲一個標誌,但找不到爲共享的運動員
共享參賽者的等效機構現在可以構建Docker鏡像。這裏是你可以使用作業:
stages:
- build
- test
- deploy
# ...
# other jobs here
# ...
docker:image:
stage: deploy
image: docker:1.11
services:
- docker:dind
script:
- docker version
- docker build -t $CI_REGISTRY_IMAGE:latest .
# push only for tags
- "[[ -z $CI_BUILD_TAG ]] && exit 0"
- docker tag $CI_REGISTRY_IMAGE:latest $CI_REGISTRY_IMAGE:$CI_BUILD_TAG
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- docker push $CI_REGISTRY_IMAGE:$CI_BUILD_TAG
此作業假設您正在使用由Gitlab提供的集裝箱登記。只有在構建提交使用版本號進行標記時,纔會推送圖像。
請注意,您將需要緩存或生成臨時構件,以便爲您的服務提供任何未在存儲庫中提交的依賴項。這應該是在其他工作中完成的。例如node_modules
通常不包含在存儲庫中,並且必須從build
/test
階段緩存。
「共享的跑步者現在能夠構建Docker鏡像」 - 我假設你是指GitLab.com上的那些人?你如何爲Docker Build設置安全的共享GitLab Runner設置?另見https://gitlab.com/gitlab-org/gitlab-ce/issues/31379 – bbodenmiller