Gitlab Container Registry 的使用
一、gitlab container registry
gitlab container registry 中 集成了docker registry,做的一个docker images管理工具,可以在gitlab页面来管理docker的images镜像,可以说是很实用的一个功能。
二、docker registry 的安装
这里使用docker 安装,并且对外的端口设置为5300
docker run -d --name registry --restart=always -p 5300:5000 -v /registry:/var/lib/registry registry:2
验证是否安装正确,输入ip:端口/v2可以得到返回,就说明registry启动完成
三、配置gitlab支持container registry
默认gitlab是没有开启container registry的功能的,需要修改配置文件/ect/gitlib/gitlab.rb文件
#registry服务的ip和端口
registry_external_url "http://192.168.xx.xx:5300"
#这里一定要加上,不然页面中没有数据,他会从localhost:5000去找数据,页面上就什么都没有
gitlab_rails['registry_api_url'] = "http://192.168.xx.xx:5300"
#支持registry
gitlab_rails['registry_enabled'] = true
页面的效果
四、使用gitlab-ci上传image
1.创建一个ci-registry项目
2.编写Dockerfile文件
FROM primetoninc/jdk:1.8
MAINTAINER axiba@qq.com
ADD target/ci-registry.jar app.jar
EXPOSE 8989
ENTRYPOINT ["java","-jar","/app.jar"]
3.编写.gitlab-ci.yml文件
写了三个阶段的,test,build,push
test job做了简单的打印
build job使用maven打包
push job使用docker命令构建镜像,并将镜像push到registry中,这里注意需要登录,而用的登录名就是当前的gitlab的用户名。
variables:
CI_DOCKER_CONTAINER: ci-registry
DOCKER_REGISTRY: "192.168.xx.xx:5300"
CI_DOCKER_PORT: 8989
CI_DOCKER_VERSION: '0.1'
CI_NAMESPACE: root
CI_DOCKER_IMAGE: ci-registry
stages:
- test
- build
- push
test:job:
stage: test
script:
- echo "test job start"
build:job:
image: maven:3.3.9-jdk-8
stage: build
script:
- echo "build job start"
- mvn clean package -Dmaven.test.skip=true
- echo "install success"
artifacts:
paths:
- target/ci-registry.jar
when: on_success
only:
- master
tags:
- register
push:job:
stage: push
image: docker:latest
script:
- docker images |grep $DOCKER_REGISTRY/$CI_NAMESPACE/$CI_DOCKER_IMAGE:$CI_DOCKER_VERSION && docker rmi -f $DOCKER_REGISTRY/$CI_NAMESPACE/$CI_DOCKER_IMAGE:$CI_DOCKER_VERSION || echo "not exist"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $DOCKER_REGISTRY/$CI_NAMESPACE/$CI_DOCKER_IMAGE:$CI_DOCKER_VERSION .
- docker push $DOCKER_REGISTRY/$CI_NAMESPACE/2/s/x/x/x/$CI_DOCKER_IMAGE:$CI_DOCKER_VERSION
only:
- master
tags:
- register
4.提交到gitlab,查看结果
查看registry中是否有数据,输入http://ip:5300/v2/root/ci-registry/tags/list
查看gitlab container registry 中是否有数据
五、不用gitlab-ci发布registry
1.将jar包和Dockerfile放在同一目录下
2.登录registry
docker login 192.168.xx.xx:5300
3.使用docker build命令打包image
docker build -t 192.168.xx.xx:5300/root/ci-registry:0.2 .
4.推送镜像到docker registry
docker push 192.168.xx.xx:5300/root/ci-registry:0.2
5.查看结果
显示两个tag
好了,这个搞定了,也挺简单的,虽然我搞了两天。哈哈
更多推荐
所有评论(0)