mkdir -p /usr/local/docker/jenkins cd /usr/local/docker/jenkins touch install.sh chmod 777 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 复制代码
bash install.sh 复制代码
运行成功后访问该地址登录Jenkins,访问jenkins地址http://ip:8081,第一次登录需要输入管理员密码
docker logs jenkins 复制代码
cat /usr/local/docker/jenkins/jenkins_home/secrets/initialAdminPassword 复制代码
确保以下插件被正确安装:
docker pull gitlab/gitlab-ce 复制代码
mkdir -p /usr/local/docker/gitlab cd /usr/local/docker/gitlab touch install.sh chmod 777 install.sh mkdir config mkdir data mkdir logs 复制代码
#!/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的配置,日志以及数据目录映射到了宿主机的指定文件夹下,防止我们在重新创建容器后丢失数据。
bash install.sh 复制代码
docker ps -a 复制代码
如下图所示则表示成功,gitlab安装有点大,需要耐心等待一段时间
# 开启1080端口 firewall-cmd --zone=public --add-port=1080/tcp --permanent # 重启防火墙才能生效 systemctl restart firewalld # 查看已经开放的端口 firewall-cmd --list-ports 复制代码
在云服务器上,需要到服务器管理界面开放端口号
docker logs gitlab -f 复制代码
Gitlab启动完成后第一次访问,会让你重置root帐号的密码
首先我们需要创建一个组织,然后在这个组织下分别创建用户和项目,这样同组织的用户就可以使用该组织下的项目了
剩下就是常用的git提交代码,拉取代码,在此就不详说,如有不懂可自行百度git命令的使用
修改如图标注地方
./install.sh 复制代码
如图所示,即代表安装成功
地址是你设置的域名地址
到此jenkins+docker+gitlab+harbor服务器部署成功,下篇将会讲解如何自动化部署项目
部分参考:MacroZheng