安装docker
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
yum install docker-ce-23.0.6-1.el7
设置docker开机自启并启动docker
systemctl enable docker
systemctl start docker
拉取实验所需镜像
docker pull gitlab/gitlab-ce:12.0.3-ce.0
docker pull jenkins/jenkins:lts
查看镜像
[root@docker1 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts 2a4bbe50c40b 2 years ago 441MB
gitlab/gitlab-ce 12.0.3-ce.0 15563c211d40 4 years ago 1.8GB
编写编排文件
[root@docker1 ~]# vim gitlab.yaml
version: '2'
services:
jenkins:
image: gitlab/gitlab-ce:12.0.3-ce.0
container_name: gitlab
ports:
- "9022:9022"
- "9080:80"
volumes:
- "/data/gitlab/cfg:/etc/gitlab"
- "/data/gitlab/logs:/var/log/gitlab"
- "/data/gitlab/data:/var/opt/gitlab"
restart: always
ports
: 定义端口映射规则。9022:9022 表示将容器内部的 9022 端口映射到主机的 9022 端口,9080:80 表示将容器内部的 9080 端口映射到主机的 80 端口。这意味着通过主机的 9022 端口和 80 端口可以访问运行在容器内部的 GitLab 服务。
volumes
: 定义了卷(Volumes)的挂载。卷可以用来持久化存储容器内的数据,以防止容器被删除后数据丢失。这里定义了三个卷:
/data/gitlab/cfg:/etc/gitlab
: 将主机的 “/data/gitlab/cfg” 目录挂载到容器的 “/etc/gitlab” 目录。GitLab 的配置文件通常位于 “/etc/gitlab” 目录下,通过这种方式可以让主机上的配置文件持久化保存,并在容器重新创建时保持配置的一致性。
/data/gitlab/logs:/var/log/gitlab
: 将主机的 “/data/gitlab/logs” 目录挂载到容器的 “/var/log/gitlab” 目录。GitLab 的日志文件通常位于 “/var/log/gitlab” 目录下,通过这种方式可以让主机上的日志文件持久化保存,并在容器重新创建时保持日志的连续性。
/data/gitlab/data:/var/opt/gitlab
: 将主机的 “/data/gitlab/data” 目录挂载到容器的 “/var/opt/gitlab” 目录。GitLab 的数据文件通常位于 “/var/opt/gitlab” 目录下,通过这种方式可以让主机上的数据文件持久化保存,并在容器重新创建时保持数据的连续性。
运行文件
[root@docker1 ~]# docker compose -f gitlab.yaml up -d
[+] Running 2/2
✔ Network root_default Created 0.2s
✔ Container gitlab Started
进入gitlab容器内部
[root@docker1 ~]# docker container exec -it gitlab bash
root@f13b6c04cd42:/# ls /etc/gitlab
gitlab-secrets.json ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_key trusted-certs
gitlab.rb ssh_host_ecdsa_key.pub ssh_host_ed25519_key.pub ssh_host_rsa_key.pub
root@f13b6c04cd42:/# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.com'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'no-reply@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "no-reply@qq.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "qiye.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
修改完配置文件,重加载一下
root@f13b6c04cd42:/# gitlab-ctl reconfigure
浏览器访问(9080端口)
设置密码后,登录,默认用户名为root
登录成功!
修改一下语言
保存设置后刷新一下~
运行jenkins编排文件
[root@docker1 ~]# cat jenkins.yaml
version: '2'
services:
jenkins:
image: jenkins/jenkins:lts
user: root
container_name: jenkins
ports:
- "8002:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/data/jenkins:/var/jenkins_home"
- "/usr/bin/docker:/usr/bin/docker"
restart: always
[root@docker1 ~]# docker compose -f jenkins.yaml up -d
[+] Running 2/2
✔ Container gitlab Recreated 11.1s
✔ Container jenkins Started
获取jenkins初始密码
#进入jenkins容器内
[root@docker1 ~]# docker exec -it jenkins bash
#查询初始化密码
root@0eeecf77387d:/# cat /var/jenkins_home/secrets/initialAdminPassword
0bfe418640a748f1a797c3d2d06b23bc
或者直接在前台运行(docker compose -f jenkins.yaml up
),可以查看初始化密码
浏览器访问(访问端口8002)
输入刚刚查询到的初始密码
按需求安装所需插件即可
至此,gitlab,jenkins的安装部署完成