首先确保gitlab服务和jenkins的可用性
在jenkins主机上安装docker并导入相应的镜像
将仓库镜像以及nginx镜像导入
创建出来一个本地仓库
添加其相应的挂载点
docker run -d --name registry -v /opt/registry:/var/lib/registry -p 5000:5000 registr
更改/var/run/docker.sock权限将其他人可以对其进行操作
在gitlab的demo下创建Dockfile 和 index.html
Dockerfile的写法
FROM nginx:1.16 as base
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
ARG TIME_ZONE
RUN mkdir -p /opt/var/cache/nginx && \
cp -a --parents /usr/lib/nginx /opt && \
cp -a --parents /usr/share/nginx /opt && \
cp -a --parents /var/log/nginx /opt && \
cp -aL --parents /var/run /opt && \
cp -a --parents /etc/nginx /opt && \
cp -a --parents /etc/passwd /opt && \
cp -a --parents /etc/group /opt && \
cp -a --parents /usr/sbin/nginx /opt && \
cp -a --parents /usr/sbin/nginx-debug /opt && \
cp -a --parents /lib/x86_64-linux-gnu/libpcre.so.* /opt && \
cp -a --parents /lib/x86_64-linux-gnu/libz.so.* /opt && \
cp -a --parents /lib/x86_64-linux-gnu/libc.so.* /opt && \
cp -a --parents /lib/x86_64-linux-gnu/libdl.so.* /opt && \
cp -a --parents /lib/x86_64-linux-gnu/libpthread.so.* /opt && \
cp -a --parents /lib/x86_64-linux-gnu/libcrypt.so.* /opt && \
cp -a --parents /usr/lib/x86_64-linux-gnu/libssl.so.* /opt && \
cp -a --parents /usr/lib/x86_64-linux-gnu/libcrypto.so.* /opt && \
cp /usr/share/zoneinfo/${TIME_ZONE:-ROC} /opt/etc/localtime
FROM gcr.io/distroless/base
COPY --from=base /opt /
COPY index.html /usr/share/nginx/html/index.html
EXPOSE 80 443
ENTRYPOINT ["nginx", "-g", "daemon off;"]
将jenkins主机中的jenkins用户添加到docker组里使其对docker有操作的权限
uesrmod -G docker jenkins
在浏览器的jenkins修改创建的gitlab
添加对于镜像的创建
添加如下
导入镜像
docker load -i distroless.tar
将gitlab的demo下的Dockcerfile和index.html推送
gitlab-ctl add Dokerfile
gitlab-ctl add index.tml
git commit -m "add dockerfile"
git push -u origin master
在浏览器上将gitlab推送
推送成功
在jenkins主机查看
还需要启动容器
在jenkins浏览器界面上
新创一个工程
配置如下
将jenkins添加到/etc/sudoers
推送在浏览器访问测试