docker构建CI/CD架构

安装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的安装部署完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值