Docker+Gitlab+Jenkins+nginx实现自动化部署前端项目

Docker+Gitlab+Jenkins+nginx实现自动化部署前端项目

  • 安装docker
  • 安装gitlab
  • 安装nginx
  • 安装jenkins
  • 要点

安装之前看一下文章末尾的要点,在遇到瓶颈时可能用到

安装docker


  1. 安装第三方扩展源(为防止docker无法下载)
yum install epel-release -y
  1. 查看yum源(应该有两个源)
ll /etc/yum.repos.d/|grep -w epel
  1. 安装Docker软件包
yum install docker -y
  1. 检测Docker软件是否安装成功
yum list docker
rpm -qa|grep docker
  1. 启动Docker引擎服务
systemctl start docker.service
  1. 查看Docker的进程
ps -ef|grep docker
  1. 查看Docker版本信息
docker version
  1. 查看正在运行的容器
docker ps

安装gitlab


  1. 下载镜像
docker pull gitlab/gitlab-ce:latest
  1. 检查镜像
docker images
  1. 创建并启动gitlab(–privileged 关闭权限限制)
docker run -itd -p 8010:8010 -p 8022:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --hostname 192.168.10.99 \
 --privileged=true \
 --name gitlab \
 --restart always \
 gitlab/gitlab-ce
  1. 进容器内部 修改配置
docker exec -it gitlab /bin/bash
vi /etc/gitlab/gitlab.rb
	
#在文件开头加入如下配置
 external_url 'http://192.168.10.99:8010'  // gitlab访问地址,可以写域名。如果端口不写的话默认为80		端口
 gitlab_rails['gitlab_ssh_host'] = '192.168.10.99' // ssh主机ip
 gitlab_rails['gitlab_shell_ssh_port'] = 8022 // ssh连接端口

#退出vi模式
gitlab-ctl reconfigure // 让配置生效
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
 #修改配置文件端口
 port:8010

# 退出vi模式
gitlab-ctl restart // 重启gitlab
exit // 退出容器
  1. 获取root账户密码(路径为启动容器时的映射路径)
cat /home/gitlab/etc/initial_root_password
  1. 配置ssh key

参考: GitLab上配置SSH Key


安装nginx


  1. 下载镜像
docker pull nginx
  1. 检查镜像
docker images
  1. 创建nginx文件夹实现目录映射
mkdir /nginx/conf/default.conf
mkdir /nginx/logs/error.log
vi /nginx/conf/default.conf 
#复制下面链接内容,并自行修改(root /usr/share/nginx/html;)中的访问路径
#如果与我一致,应该是(root /nginx/workspace/dist/)
#退出vi模式

链接: nginx default.conf配置文件详解

  1. 创建并启动nginx
docker run -itd --name nginx -p 8020:80 -p 443:443 \
 -v /nginx/conf/:/etc/nginx/conf.d/ \
 -v /nginx/logs/:/var/log/nginx/ \
 -v /nginx/workspace/:/nginx/workspace/ \
 --privileged=true \
 --restart always \
 nginx

安装jenkins


  1. 配置阿里docker镜像
vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://mn7vu22j.mirror.aliyuncs.com"]
}
  1. 在docker中安装jenkins
docker pull jenkins/jenkins:lts
  1. 目录映射
mkdir -p /mydata/jenkins_home
  1. 启动jenkins(-v /nginx/workspace/:/nginx_workspace/ 与nginx联动)
docker run -itd --name=jenkins -p 8030:8080 \
 -v /mydata/jenkins_home/:/var/jenkins_home/ \
 -v /nginx/workspace/:/nginx_workspace/ \
 --privileged=true \
 --restart always \
 jenkins/jenkins:lts
  1. 查看是否启动成功
docker ps(没有找到对应的容器则启动失败)
docker ps -a
docker logs jenkins
  1. 修改权限(如果启动成功则不需要)
chown -R 1000 /mydata/jenkins_home/
  1. 查看初始密码(用于启动成功后管理员登录,日志中交有一串英文)
docker logs jenkins

要点


  1. gitlab+jenkins配置
    参考: gitlab+jenkins自动化部署

  2. gitlab容器内执行gitlab-ctl reconfigure时可能反应时间较长,耐心等待。

  3. gitlab容器启动速度较慢,前几分钟在docker中的状态为unhealthy(在已经完成重新配置的情况下,浏览器访问为502),只需要等待,不要着急,我在本地虚拟机上启动,大概需要十分钟。

  4. jenkins在启动容器时不仅需要映射自己的重要路径,还需要将nginx的工作路径映射到容器内,方便将jenkins获取到的包部署到nginx工作路径上。(如上:-v /nginx/workspace/:/nginx_workspace/)

  5. jenkins的插件源可跟换成国内的http://mirror.xmission.com/jenkins/updates/update-center.json

你可能感兴趣的:(docker,gitlab,jenkins,nginx,自动化)