使用docker安装Jenkins和gitlab详细步骤

1 篇文章 0 订阅
1 篇文章 0 订阅

 

目录

 

1、下载jenkins的docker镜像

2、启动Jenkins镜像

3、解锁jenkins,并创建管理员

4、安装需要的插件(maven和热部署)

5.安装gitlab

6.运行

1、通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

2、准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped 作为重启策略,因为这样可以手工停止容器, 方便维护。

3. 配置GitLab主机名

7。端口不能访问端口被占用(这里不做)

修改Gitlab数据存储路径(这里不做)

配置并启动GitLab

登陆

常用的几个Gitlab命令

 错误

8.注意:这样docker在服务器关闭重启后也会关闭,容器不能自动重启,如mysql,redis等服务不能自动重启。


1、下载jenkins的docker镜像

Jenkins仓库地址:https://hub.docker.com/r/jenkinsci/blueocean/

进入后

在自己的linux服务器直接执行以下命令,会下载最新的镜像。

#从docker仓库中下载jenkins到本地
docker pull jenkinsci/blueocean 

检查是否下载成功:

#查看本地镜像命令
docker images

当出现如下所示时,证明拉取成功。

2、启动Jenkins镜像

引自jenkins官网启动命令,并稍作了修改。

docker run \ 
  -u root \ #docker容器中以root权限启动
  --rm \  #关闭时自动删除Docker容器
  -d \  #在后台运行容器(即“分离”模式)并输出容器ID
  -p 8080:8080 \ #docker容器的8080端口绑定宿主机8080端口
  -p 50000:50000 \  #docker容器的50000端口绑定宿主机50000端口。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。
  -v /var/jenkins_home:/var/jenkins_home \  #指定宿主机目录挂载容器文件目录,方便查看管理员密码,也为了后面git和maven安装目录的使用。
  -v /var/run/docker.sock:/var/run/docker.sock \  #指定宿主机目录挂载容器文件。
  --name jenkins jenkinsci/blueocean  #给容器起个名字,方便后面寻找

合并一行

docker run -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home  -v /var/run/docker.sock:/var/run/docker.sock --name jenkins jenkinsci/blueocean

 

 

执行命令效果

查看启动日志

#jenkins是给容器起的名字,可以用容器ID
docker logs jenkins

当出现以下日志信息后,证明启动成功了

3、解锁jenkins,并创建管理员

当您第一次访问新的Jenkins实例时,系统会要求您使用自动生成的密码对其进行解锁。

输入你linux服务器的IP:8080进入管理入口,出现以下界面

由于宿主机已经挂载容器文件相同目录,所以找寻管理密码,直接服务制界面出现的地址,查看密码即可

#注意:initialAdminPassword是个文件,不是目录
vim /var/jenkins_home/secrets/initialAdminPassword

或者查看docker日志也能找到管理密码

找到密码后,直接复制到输入框中,点击继续,进入一下界面,证明解锁成功

点击安装推荐的插件即可,下面就开始下载插件

下载完成后会让创建一个管理员用户,需要设置用户名、密码、名称、邮箱,略过。然后是配置实例url,默认配置即可。

管理员相关配置完成后,需要重启,点击重启。当出现以下日志,证明重启完成了

浏览器输入你的服务器IP:8080,便可进入到登录页,输入上面设置的管理员用户名和密码即可登录到管理后台。

4、安装需要的插件(maven和热部署)

进入到管理后台后,点击系统管理->插件管理->可选插件

过滤搜索框输入Maven Integration来搜索Maven Integration插件。

点击直接安装。下面搜索并安装热部署插件Deploy to container

注意安装完这俩插件了,需要重启jenkins。

后面加上git和maven的集成。

5.安装gitlab

git search gitlab

git pull gitlab/gitlab-ce

等待下载完成

docker ps

docker images

6.运行

1、通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。

mkdir -p /data/gitlab/etc

mkdir -p /mnt/gitlab/log

mkdir -p /mnt/gitlab/data

2、准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped 作为重启策略,
因为这样可以手工停止容器, 方便维护。

完整的运行命令如下:

docker run \
    --detach \
    --publish 8443:443 \
    --publish 8090:80 \
    --name gitlab \
    --restart unless-stopped \
    -v /data/gitlab/etc:/etc/gitlab \
    -v /data/gitlab/log:/var/log/gitlab \
    -v /data/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce

3. 配置GitLab主机名

1、修改/data/gitlab/etc/gitlab.rb

 把external_url改成部署机器的域名或者IP地址

vim /data/gitlab/etc/gitlab.rb

 

2、修改/data/gitlab/data/gitlab-rails/etc/gitlab.yml 

vim /data/gitlab/data/gitlab-rails/etc/gitlab.yml

找到关键字 * ## Web server settings * 

将host的值改成映射的外部主机ip地址和端口,这里会显示在gitlab克隆地址

到此为止,gitlab的web管理页面就可以正常访问

按照提示是输入密码,此时的账号为root

登录进去就是上图这样,然后就可以

如果还是不能正常访问的话,检查端口是否被占用?

7。端口不能访问端口被占用(这里不做)

如果端口号被占用,改了默认的80端口,后面要接端口号

1

external_url 'http://192.168.182.129:8090' 注:这里容器内没改,只是映射到8090

修改NGINX监听的端口为9999

1

2

nginx['listen_addresses'] = ['*']

nginx['listen_port'] = 8090

如果8080端口被Tomcat占用,会出现502的页面

因此需要修改unicorn的配置,如下

1

2

3

4

5

6

7

### Advanced settings

# unicorn['listen'] = '127.0.0.1'

# unicorn['port'] = 8080

 

# 假设有Tomcat占用了8080,因此改为8082试一试

 unicorn['listen'] = '127.0.0.1'

 unicorn['port'] = 8082


修改Gitlab数据存储路径(这里不做)

默认的Gitlab数据存储路径,在目录/var/opt/gitlab/git-data下,防止以后数据过大,所以可以修改路径存储为/data/gitlabData

1

2

3

4

5

6

vim /mnt/gitlab/etc/gitlab.rb

### For setting up different data storing directory

###! Docs: https://docs.gitlab.com/omnibus/settings/configuration.html#storing-git-data-in-an-alternative-directory

###! **If you want to use a single non-default directory to store git data use a

###!   path that doesn't contain symlinks.**

# git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data", 'gitaly_address' => 'unix:/var/opt/gitlab/gitaly/gitaly.socket' } })

1

2

#edited by ouyangpeng 2017-8-10  配置gitlab的数据存储位置为/data目录下,保证硬盘安全

git_data_dirs({ "default" => { "path" => "/data/gitlabData" } })

设置完后,过一段使用时间,可以看到该目录下的resposities

配置并启动GitLab

像上面步骤修改了GitLab的ip地址一样,临时修改了GitLab的配置之后,得执行如下的命令,应用重新配好的配置并重启GitLab,然后查看GitLab的状态。

因为是容器,所以要进入到gitlab容器中执行命令

1

docker exec -ti gitlab /bin/bash

然后

1

2

3

gitlab-ctl reconfigure  #花时间比较多

gitlab-ctl restart    #改IP重启就可以了

gitlab-ctl status

登陆

打开浏览器,输入本机的ip地址并登陆

1

http://192.168.182.129:8090

  默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。

常用的几个Gitlab命令

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

# 重新应用gitlab的配置

gitlab-ctl reconfigure

 

# 重启gitlab服务

gitlab-ctl restart

 

# 查看gitlab运行状态

gitlab-ctl status

 

#停止gitlab服务

gitlab-ctl stop

 

# 查看gitlab运行日志

gitlab-ctl tail

 

# 停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sideki

 

 错误

1、docker启动报错信息如下

1

Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen<strong>解决:</strong>

解决

检查docker端口映射是否冲突
重启docker服务后再启动容器

1

2

systemctl restart docker

docker start gitlab

 参考:https://my.oschina.net/ZL520/blog/3033001

https://www.cnblogs.com/zuxing/articles/9329152.html

https://hub.docker.com/r/beginor/gitlab-ce/

8.注意:这样docker在服务器关闭重启后也会关闭,容器不能自动重启,如mysql,redis等服务不能自动重启。

解决:

sudo docker update mysql --restart=always

sudo docker update redis --restart=always

其中以上命令中的mysql,redis等都为容器名,要根据安装版本进行实际配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值