1.linux装好容器环境。
CentOS:yum -y install docker Ubuntu:apt install docker.io
记得创建下软连接:加速地址去阿里云登录进行配置。
cd /usr/libexec/docker/
ln -s docker-runc-current docker-runc
2.使用容器界面管理工具portainer,注意主机端口是否已被使用,已经挂载目录是否创建。
docker run -d -p 8000:8000 -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/docker/portainer:/data portainer/portainer
3.访问部署portainer。http://ip:9000,首次登录需要设置密码,选择local。然后选择App Template,选择Registry。
看我的配置图:
部署成功之后,访问http://ip:5000/v2/_catalog,因为你还没push,所以啥都没有。
接下来,可以去你装好docker环境的linux里面去官方随便拉一个镜像,或者你本地已经有镜像都可以。我这里以nginx为例
docker pull nginx:latest
docker tag nginx:latest ip:5000/nginx:v1
push之前需要配置/etc/docker/daemon.json
加上 "insecure-registries": ["192.168.168.225:5000"] 属性。
然后刷新重启docker:systemctl daemon-reload & systemctl restart docker
docker push ip:5000/nginx:v1
再尝试访问http://ip:5000/v2/_catalog
能看到东西,说明成功了。
接着尝试删除本地nginx镜像:docker rmi nginx:latest
然后再拉取本地私服镜像:docker pull ip:5000/nginx:v1
好了,介绍这么多我也不想多说了。直接来说下cicd配置文件吧。
其实玩过dockerfile的童鞋都知道怎么弄,我就直接说关键点了。或者你看看这篇文章
image: 192.168.168.225:5000/maven:3.6.1-jdk-8
variables:
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true"
cache:
paths:
- .m2/repository
stages:
- compile
compile:
stage: compile
script:
- pwd
- ls
- mvn -f ./ $MAVEN_CLI_OPTS compile
tags:
- runner
only:
- master