GitLab Container Registry

經過將GitLab Container Registry集成到GitLab中,每一個項目均可以擁有本身的空間來存儲其Docker鏡像。html

1. 啓用Container Registrymysql

若是在你的項目的側邊欄下找不到 Packages > Container Registry 這個目錄,那麼請聯繫管理員。git

若是你使用的是GitLab.com,那麼默認狀況下此功能是啓用的,所以能夠當即開始使用Registry。當前,做爲倉庫大小限制的一部分,GitLab.com上的Registry有一個較小的大小限制(10GB)。sql

爲了啓用Container Registry :docker

  1.  進入Settings > General頁面
  2. 展開Visibility, project features, permissions區域,並在項目上啓用Container Registry特性
  3. 點擊Save changes 

2. 構建並推送鏡像ruby

假設Registry的URL是registry.example.com,首先你應該登陸服務器

docker login registry.example.com 

構建和發佈鏡像應該是一個簡單的過程。只需確保你使用的Registry URL的命名空間和項目名稱是託管再GitLab上:gitlab

docker build -t registry.example.com/group/project/image .
docker push registry.example.com/group/project/image 

項目命名格式:post

<registry URL>/<namespace>/<project>/<image>

GitLab最多支持三級的鏡像倉庫名稱測試

下面這些鏡像tag命名都是有效的:

registry.example.com/group/project:some-tag
registry.example.com/group/project/image:latest
registry.example.com/group/project/my/image:rc1

3. 使用GitLab Container Registry中的鏡像

docker run [options] registry.example.com/group/project/image [arguments]

4. 使用GitLab CI構建和推送鏡像

GitLab CI/CD 容許你使用Docker Engine來構建和測試基於docker的項目。

持續集成和部署是一種趨勢:

  1. 建立一個應用鏡像
  2. 爲這個鏡像運行測試
  3. 推送鏡像到遠程註冊中心
  4. 將推送的鏡像部署到服務器上 
docker build -t my-image dockerfiles/
docker run my-image /script/to/run/tests
docker tag my-image my-registry:5000/my-image
docker push my-registry:5000/my-image

Register Docker Runner 

sudo gitlab-runner register \
     --url"https://gitlab.example.com/" \
     --registration-token "PROJECT_REGISTRATION_TOKEN" \
     --description"docker-ruby:2.6" \
     --executor "docker" \
     --docker-image ruby:2.6 \
     --docker-services postgres:latest \
     --docker-services mysql:latest

5. Docs

https://docs.gitlab.com/ee/user/packages/container_registry/index.html

https://docs.gitlab.com/ee/administration/packages/container_registry.html

https://docs.gitlab.com/ee/ci/docker/using_docker_build.html 

相關文章
相關標籤/搜索