本教程基于Ubuntu 16.04.7
使用镜像ubuntu-16.04.7-server-amd64.iso默认步骤安装
端口 | 应用 |
---|---|
9000 | Portainer |
31000 | GitLab Web |
31001 | GitLab 22 |
31002 | GitLab 443 |
sudo vim /etc/default/locale
#将内容改为:
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
#改 root 密码
sudo passwd root
#编辑配置文件(修改 PermitRootLogin yes)
sudo vi /etc/ssh/sshd_config
#重启服务
sudo systemctl restart ssh
#备份原文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak
#修改配置文件
sudo vim /etc/apt/sources.list
删除100行
100 dd
#写入模式
i
#粘贴以下内容
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
#保存修改
:wq
Ubuntu 14.04/16.04(使用 apt-get 进行安装)
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
#初始化swarm
docker swarm init
curl -L https://downloads.portainer.io/portainer-agent-stack.yml -o portainer-agent-stack.yml
docker stack deploy -c portainer-agent-stack.yml portainer
使用ip:9000访问portainer
#拉取镜像(当前版本镜像2.2G,若通过Portainer下载时间较久切无法查看进度,推荐使用命令下载)
sudo docker pull gitlab/gitlab-ce
#Ubuntu中建目录(可自定)
sudo mkdir -p /srv/gitlab/data
sudo mkdir -p /srv/gitlab/logs
sudo mkdir -p /srv/gitlab/config
#使用docker-compose安装
cd && mkdir gitlab && cd gitlab
vim gitlab.rb
#写入如下
external_url 'https://my.domain.com/'
gitlab_rails['initial_root_password'] = File.read('/run/secrets/gitlab_root_password')
vim root_password.txt
#写入如下
MySuperSecretAndSecurePass0rd!
vim docker-compose.yml
#写入如下
version: "3.6"
services:
gitlab:
image: gitlab/gitlab-ce:latest
ports:
- "31000:80"
- "31001:22"
- "31002:443"
volumes:
- /srv/gitlab/data:/var/opt/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/config:/etc/gitlab
environment:
GITLAB_OMNIBUS_CONFIG: "from_file('/omnibus_config.rb')"
configs:
- source: gitlab
target: /omnibus_config.rb
secrets:
- gitlab_root_password
gitlab-runner:
image: gitlab/gitlab-runner:alpine
deploy:
mode: replicated
replicas: 4
configs:
gitlab:
file: ./gitlab.rb
secrets:
gitlab_root_password:
file: ./root_password.txt
#新建stack
sudo docker stack deploy --compose-file docker-compose.yml gitlab
#等待5分钟左右容器启动完成
修改GitLab root密码
#Portainer进入gitlab容器控制台
#1.使用以下命令启动Ruby on Rails控制台
gitlab-rails console -e production
#2.选择root
user = User.where(id: 1).first
#3.修改密码
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
#4.保存
user.save!
1.登录进GitLab
2.点击右上角头像
3.点击Preferences
4.拉到最底下选择语言
5.刷新页面
#下载镜像(当前版本26.2M,无须提前下载)
sudo docker pull registry:latest
#新建相应目录
sudo mkdir -p /dockeruse/registry/data
sudo mkdir -p /dockeruse/registry/certs
sudo mkdir -p /dockeruse/registry/auth
#生成证书
sudo openssl req -newkey rsa:4096 -nodes -sha256 -keyout /dockeruse/registry/certs/domain.key -x509 -days 365 -out /dockeruse/registry/certs/domain.crt
#在docker中创建
sudo docker secret create registry_domain.crt certs/domain.crt
sudo docker secret create registry_domain.key certs/domain.key
#新建stack,粘贴以下
version: "3"
services:
registry:
restart: always
image: registry:latest
ports:
- 32000:5000
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt
REGISTRY_HTTP_TLS_KEY: /certs/domain.key
#REGISTRY_AUTH: htpasswd
#REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
#REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- /dockeruse/registry/data:/var/lib/registry
- /dockeruse/registry/certs:/certs
- /dockeruse/registry/auth:/auth
#启动,通过https://ip:32000/v2/_catalog访问
#响应{"repositories":[]}