文章说明:
1.查阅了相关的官方网站,查阅了些资料,请教了些前辈,自己实践安装环境,按照如下的步骤 在CentOS7上部署成功。
2.下面的安装过程中 涉及的IP地址及端口号根据实际的情况自行修改。
3.本文只写到了环境安装部署,具体的使用,请到对应的官网上学习使用。
一,关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
禁用selinux安全
vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled
二、下载镜像:
1.postgresql数据库下载:
1)搜索可用的镜像
docker search sameersbn/postgresql
2)下载镜像
docker pull docker.io/sameersbn/postgresql
2.redis下载:
1)搜索可用的镜像
docker search sameersbn/redis
2)下载镜像
docker pull docker.io/sameersbn/redis
3.下载gitlab
1)搜索可用的镜像
docker search gitlab
2)下载镜像 (社区汉化版)
docker pull docker.io/twang2218/gitlab-ce-zh
三、安装数据库
1、mkdir -pv /home/docker/gitlab/postgresql
2、docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm' \
--volume /home/docker/gitlab/postgresql:/var/lib/postgresql \
docker.io/sameersbn/postgresql
参数说明:
--name 给安装镜像取名字,便于在容器中查看。
--env表示环境变量
--volume表示将后面容器中的路径挂载到前面的路径上
四、安装 Redis
1、mkdir -pv /home/docker/gitlab/redis
2、
docker run -p 63791:6379 --name gitlab-redis -d \
--volume /home/docker/gitlab/redis:/var/lib/redis \
sameersbn/redis
参数说明:
-p 63791:6379 :将容器的63791端口映射到主机的6379端口
--volume 表示将后面容器中的路径挂载到前面的路径上/home/docker/gitlab/redis:/var/lib/redis :将主机中当前目录下的/home/docker/gitlab/redis 挂载到容器的/var/lib/redis
redis-server --appendonly yes :在容器执行redis-server启动命令,并打开redis持久化配置
五、安装gitlab
1. 安装pwgen-2.07-1.el7.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/pwgen-2.07-1.el7.x86_64.rpm
rpm -ivh *.rpm
2. 生成序列
[root@localhost ~]# pwgen -Bsv1 64
DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7
把生成的序列复制到如下:
--env 'GITLAB_SECRETS_DB_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
3.镜像添加到容器
1)mkdir -pv /home/docker/gitlab/gitlab
2)docker run --name gitlab_ce_ch -d \
--link gitlab-postgresql:postgresql --link gitlab-redis:redisio \
--publish 10022:22 --publish 5080:80 \
--env 'GITLAB_PORT=5080' --env 'GITLAB_SSH_PORT=10022' --env 'GITLAB_HOST=IP_ADDRESS' \
--env 'GITLAB_SECRETS_DB_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
--env 'GITLAB_SECRETS_SECRET_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
--env 'GITLAB_SECRETS_OTP_KEY_BASE=DqQ4WVHQvmDnScs5WHXbwKm4tM7XD6Hd263w6QzrgjtmWtkqdTm5bLQhQzGQvLC7' \
--volume /home/docker/gitlab/gitlab:/home/git/data \
twang2218/gitlab-ce-zh
参数说明:
--link 连接数据库 redis
--publish 10022:22 :将容器的22端口映射到主机的10022。端口 ; 5080:80 :将容器的80端口映射到主机的5080
--name 给安装镜像取名字,便于在容器中查看。
--env表示环境变量
--volume表示将后面容器中的路径挂载到前面的路径上
六、安装 jenkins 持续集成
1. mkdir -pv /home/docker/jenkins_home && chown -R 1000 /home/docker/jenkins_home
2. docker run --name jenkins -p 9080:8080 \
-p 50000:50000 -v /home/docker/jenkins_home:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
jenkins/jenkins
参数说明:
-p 端口号的映射 根据实际的情况自己修改。
--name 给安装镜像取名字,便于在容器中查看。
--env表示环境变量
--volume表示将后面容器中的路径挂载到前面的路径上
生成密钥如下:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
017ae0c2045e49669ddffe686a902352
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
3、退出:Ctr + C
4、登录:127.0.0.1:6080/
5、输入密钥: 017ae0c2045e49669ddffe686a902352
七、部署maven是私有库
方法一:
1、mkdir -pv /home/docker/nexus-data && chown -R 200 /home/docker/nexus-data
2、docker pull sonatype/nexus
3、docker run -d --name nexus-data sonatype/nexus echo "data-only container for Nexus"
4、docker run -d -p 80811:8081 --name nexus --volumes-from nexus-data sonatype/nexus
方法二:
1、mkdir -pv /home/docker/nexus-data && chown -R 200 /home/docker/nexus-data
2、sudo docker run -d \
--name nexus \
-p 80811:8081 \
-v /home/docker/nexus-data:/var/lib/nexus-data \
sonatype/nexus
参数说明:
-p 80811:8081 :将容器的8081端口映射到主机的80811。
--name 给安装镜像取名字,便于在容器中查看。
-v表示将后面容器中的路径挂载到前面的路径上
5.127.0.0.1:20081/nexus
6.初始用户/密码: 账号/密码