本文后续所有安装都基于 docker ,所以需要一定的 docker 基础知识储备。
Docker 的准备
卸载 原 Docker
# 卸载Docker ( CentOS )
sudo yum remove docker \
docker-common \
container-selinux \
docker-selinux \
docker-engine
# 删除原Docker的镜像,网络,存储卷等文件
rm -fr /var/lib/docker/
复制代码
安装 Docker
# Docker 官方(速度较慢)
curl -sSL https://get.docker.com | sh
# 国内加速版本
curl -sSL https://get.daocloud.io/docker | sh
复制代码
如安装过程中出现 "Failed to set locale, defaulting to C" 使用如下命令,echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
启动 docker
# 启动服务
sudo systemctl start docker
复制代码
天朝特色(设置加速器)
# daocloud 一键解决方案
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://a1c42b37.m.daocloud.io
sudo systemctl restart docker
# 阿里云方案(如果是阿里云服务器,推荐该方案)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://lj65tfot.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
复制代码
Gitlab 相关
修改ssh 端口
# 查看端口
netstat -tnlp |grep ssh
# 修改文件
vi /etc/ssh/sshd_config
# 重启
service sshd restart
复制代码
说明:git 中会使用到 ssh 协议,所以会使用到 22 端口。
准备 Gitlab 镜像
docker pull gitlab/gitlab-ce
复制代码
安装 Gitlab
sudo docker run --detach \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume /srv/docker/gitlab/config:/etc/gitlab \
--volume /srv/docker/gitlab/logs:/var/log/gitlab \
--volume /srv/docker/gitlab/data:/var/opt/gitlab \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://180.76.110.35';" \
gitlab/gitlab-ce:latest
复制代码
说明 443端口为https使用,80端口为http使用,22端口为ssh使用。
配置 Gitlab 配置
- 配置 IP、域名等设置。
修改 /srv/docker/gitlab/config/gitlab.rb 文件
vi /srv/docker/gitlab/config/gitlab.rb
修改:external_url '服务器IP/已备案的域名'
示例:external_url 'http://180.76.110.35/'
复制代码
- 配置邮箱服务
修改 /srv/docker/gitlab/config/gitlab.rb 文件
gitlab_rails[‘smtp_enable’] = true
gitlab_rails[‘smtp_address’] = “smtp.163.com”
gitlab_rails[‘smtp_port’] = 25
gitlab_rails[‘smtp_user_name’] = “[email protected]”
gitlab_rails[‘smtp_password’] = “xxx”
gitlab_rails[‘smtp_domain’] = “163.com”
gitlab_rails[‘smtp_authentication’] = :login
gitlab_rails[‘smtp_enable_starttls_auto’] = true
gitlab_rails[‘gitlab_email_from’] = “[email protected]”
user[“git_user_email”] = “[email protected]”
复制代码
修改之后重新加载配置文件
# 进入 容器 中
docker exec -it gitlab bash
# 加载配置
gitlab-ctl reconfigure
复制代码
- 配置https
TODO
- 关闭注册
root 用户登录,admin area -> settings -> Sign-up Restrictions -> Sign-up enabled 关闭即可。
配置Gitlab CI 配置
- 安装 runner
docker run -d --name gitlab-runner --restart always \
-v /srv/docker/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
复制代码
- 注册 runner
docker exec -it gitlab-runner gitlab-ci-multi-runner register
复制代码
注意,此处需要登录到 gitlab 中 查询**。
- GitLab Runner Cache TODO