Docker容器

Jenkins+Docker+Gitlab+Harbor服务器环境部署

本文主要是介绍Jenkins+Docker+Gitlab+Harbor服务器环境部署,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 部署架构图

servicearrange.jpg

2. jenkins安装

2.1 新建jenkins安装目录

mkdir -p /usr/local/docker/jenkins
cd /usr/local/docker/jenkins
touch install.sh
chmod 777 install.sh
复制代码

2.2 新建install.sh脚本文件

#!/bin/bash
echo "step 1 -> 创建jenkins挂载目录------"
mkdir -p /usr/local/docker/jenkins/jenkins_home
chmod 777 /usr/local/docker/jenkins/jenkins_home
echo "step 2 -> 创建docker-compose.yaml模板文件------"
cd /usr/local/docker/jenkins/
cat <<EOF > docker-compose.yaml
version: '3'
services:
  jenkins:
   image: 'jenkins/jenkins:lts'
   container_name: jenkins
   restart: always
   environment:
    - 'JAVA_OPTS=-Duser.timezone=Asia/Shanghai'
   volumes:
    - '/etc/localtime:/etc/localtime'
   ports:
    - '8081:8080'
    - '50000:50000'
   volumes:
    - '/usr/local/docker/jenkins/jenkins_home:/var/jenkins_home'
EOF
echo "step 3 -> docker-compose启动运行jenkins容器"
docker-compose up -d
sleep 1
docker ps -a
复制代码

2.3 运行install.sh脚本文件

bash install.sh
复制代码

2.4 如下图所示,则说明jenkins安装成功

image.png
等待一会

2.5 jenkins基本配置

运行成功后访问该地址登录Jenkins,访问jenkins地址http://ip:8081,第一次登录需要输入管理员密码

image.png

  • 方式1:使用管理员密码进行登录,可以使用以下命令从容器启动日志中获取管理密码
docker logs jenkins
复制代码

image.png

  • 方式2:从挂载目录/usr/local/docker/jenkins/jenkins_home中获取
cat /usr/local/docker/jenkins/jenkins_home/secrets/initialAdminPassword
复制代码

image.png

  • 选择安装插件方式,这里我们直接安装推荐的插件

image.png

  • 进入插件安装界面,联网等待插件安装:

image.png

  • 安装完成后,创建管理员账号:

image.png

  • 进行实例配置,配置Jenkins的URL

image.png

  • 点击系统管理->插件管理,进行一些自定义的插件安装:

image.png

确保以下插件被正确安装:

  1. 远程使用ssh的插件:Publish Over SSH
  • 通过系统管理->全局工具配置来进行全局工具的配置,比如maven的配置:

image.png

  • 新增maven的安装配置:

image.png

  • SSH Server管理(如下图):若需要多台,点新增再添加即可。需要注意的是,如果没有配置免密登录的话,需要点击高级,勾选Use password authentication, or use a different key ,并在Passphrase/Password这一栏中输入虚拟机远程登录密码

image.png

3. gitlab安装

3.1 下载Gitlab的Docker镜像

docker pull gitlab/gitlab-ce
复制代码

3.2 新建gitlab安装目录

mkdir -p /usr/local/docker/gitlab
cd /usr/local/docker/gitlab
touch install.sh
chmod 777 install.sh
mkdir config
mkdir data
mkdir logs
复制代码

3.3 新建install.sh脚本文件

#!/bin/bash
docker run --detach \
  --publish 10443:443 --publish 8082:80 --publish 1022:22 \
  --name gitlab \
  --restart always \
  --volume /usr/local/docker/gitlab/config:/etc/gitlab \
  --volume /usr/local/docker/gitlab/logs:/var/log/gitlab \
  --volume /usr/local/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest
复制代码

需要注意的是我们的Gitlab的http服务运行在宿主机的8082端口上,这里我们将Gitlab的配置,日志以及数据目录映射到了宿主机的指定文件夹下,防止我们在重新创建容器后丢失数据。

3.4 运行install.sh脚本文件

bash install.sh
复制代码

3.5 查看gitlab安装是否成功

docker ps -a
复制代码

如下图所示则表示成功,gitlab安装有点大,需要耐心等待一段时间

image.png

3.6 开启防火墙的指定端口

# 开启1080端口
firewall-cmd --zone=public --add-port=1080/tcp --permanent 
# 重启防火墙才能生效
systemctl restart firewalld
# 查看已经开放的端口
firewall-cmd --list-ports
复制代码

在云服务器上,需要到服务器管理界面开放端口号

3.7 访问Gitlab

  • 访问地址:http://ip:8082/
  • 由于Gitlab启动比较慢,需要耐心等待10分钟左右,如果Gitlab没有启动完成访问,会出现如下错误。

image.png

  • 可以通过docker命令动态查看容器启动日志来知道gitlab是否已经启动完成

image.png

docker logs gitlab -f
复制代码

3.8 Gitlab的使用

Gitlab启动完成后第一次访问,会让你重置root帐号的密码

image.png

  • 重置完成后输入帐号密码登录

image.png

  • 选择创建项目、创建组织、创建帐号

image.png

  • 创建组织

首先我们需要创建一个组织,然后在这个组织下分别创建用户和项目,这样同组织的用户就可以使用该组织下的项目了

image.png

  • 创建用户并修改密码

image.png

image.png

  • 修改密码

image.png

  • 创建项目

image.png

  • 初始化README文件

image.png

image.png

  • 将用户分配到组织

image.png

  • Git客户端安装及使用
  1. 下载Git客户端并安装
  2. 下载地址:github.com/git-for-win…
  3. 下载完成后,一路点击Next安装即可。
  • clone项目

image.png

剩下就是常用的git提交代码,拉取代码,在此就不详说,如有不懂可自行百度git命令的使用

4. harbor安装

4.1 下载harbor安装文件

github.com/goharbor/ha…

image.png

  • 解压如图所示

image.png

4.2 修改harbor.yml

修改如图标注地方

image.png

4.3 运行install.sh

./install.sh
复制代码

如图所示,即代表安装成功

image.png

4.3 访问harbor页面

地址是你设置的域名地址

  • 输入用户名和密码,账号是admin,密码是刚才在配置文件配置的harbor_admin_password

image.png

4.4 在另外一个服务器(client)登录harbor

image.png

5 总结

到此jenkins+docker+gitlab+harbor服务器部署成功,下篇将会讲解如何自动化部署项目

部分参考:MacroZheng

这篇关于Jenkins+Docker+Gitlab+Harbor服务器环境部署的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!