基础环境搭建,包含docker可运行环境 gitlab代码仓库,harbor镜像仓库。gitlab和harbor 运行在linux的主机上,程序服务通过docker来搭建。centos用7.5
一、docker环境搭建
yum update -y
yum install -y vim wget
yum remove docker docker-common docker-selinux docker-engine #删除旧的引用
yum install -y yum-utils device-mapper-persistent-data lvm2 #安装软件包
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #配置仓库地址
yum list docker-ce --showduplicates | sort -r #检查docker版本,可以查看一下现在最新版本有哪一些
yum install docker-ce -y #安装最新版本
#启动docker并且开机启动
systemctl start docker
systemctl enable docker
docker安装好之后,安装一个web管理后台,来可视化操作一些东西。才用portainer管理。
docker pull portainer/portainer #拉取镜像
docker volume create portainer_data #创建数据卷
docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --restart=always portainer/portainer #启动容器
然后通过 http://112.74.100.3:9000访问,进入之后,设置管理员密码,选择local本机模式,进入首页。
安装compose
yum -y install epel-release
yum -y install python-pip
pip install --upgrade pip
pip install --upgrade setuptools
pip install docker-compose
docker-compose version
使用goharbor搭建harbor.https://github.com/goharbor/harbor/releases
必须用离线版本,下载要很久。我用的是1.9.1版本。
cd ~
wget https://github.com/goharbor/harbor/releases/download/v1.9.1/harbor-offline-installer-v1.9.1.tgz
tar -zxvf harbor-offline-installer-v1.9.1.tgz
cd harbor
vim harbor.yml #进入修改密码
./install.sh #安装
上面的nginx监听了80端口,转到harbor 管理页面。没有更改密码的话,密码是Harbor12345
三、安装gitlab
通过compose安装,在portainer里面就是用Stacks。
新增一个gitlab的statcks 。其中网络选择了跟harbor一个局域网,这样方便互相访问,也可以不用
version: '2'
services:
gitlab:
image: 'twang2218/gitlab-ce-zh:9.4'
restart: always
hostname: 'gitlab'
network_mode: harbor_harbor
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.ivinbo.com'
gitlab_rails['gitlab_shell_ssh_port'] = 2022
#unicorn['port'] = 8888
nginx['listen_port'] = 80
ports:
- '2080:80'
- '20443:443'
- '2022:22'
volumes:
- vm-git-etc:/etc/gitlab
- vm-git-opt:/var/opt/gitlab
- vm-git-log:/var/log/gitlab
稍等一段时间,就可以访问了,通过ip端口就可以访问后台了。
如果要实用域名的话,就要购买 https证书,然后cd /root/harbor/common/config/nginx 进入修改nginx的配置。
nginx的配置去哪里修改,通过查看nginx容器的容器卷得到,这里已经安装了一个nginx容器,就不需要额外安装了。
harbor和gitlab的具体使用,不再教授。
至于其他发服务器,需要使用harbor和gitlab的话,通常需要https结合证书,如果需要的购买一个。需要给harbor配置证书的话,就直接配置在nginx.conf配置文件上。如何配置,不再指导。配置好的内容,记得备份下来保存。
假如需要gitlab的nginx配置,如下
server {
listen 8443 ssl;
server_name gitlab.xxx.com;
#access_log /var/log/nginx/gitlab.log;
ssl_certificate /etc/cert/gitlab.ivinbo.com.crt;
ssl_certificate_key /etc/cert/gitlab.ivinbo.com.key;
#add_header Access-Control-Allow-Origin *;
#add_header Access-Control-Allow-Headers X-Requested-With;
#add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
location / {
proxy_pass http://gitlab_gitlab_1:80/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 500m;
proxy_buffering off;
proxy_request_buffering off;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection $http_connection;
#proxy_set_header Origin * ;
}
}
server {
listen 8080;
server_name gitlab.xxx.com;
#access_log /var/log/nginx/gitlab.log;
location / {
proxy_pass http://gitlab_gitlab_1:80/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 500m;
proxy_buffering off;
proxy_request_buffering off;
#proxy_http_version 1.1;
#proxy_set_header Upgrade $http_upgrade;
#proxy_set_header Connection $http_connection;
#proxy_set_header Origin * ;
}
}