Docker搭建Gitlab代碼管理平臺

1、Gitlab的安裝

宿主機環境:git

  • CentOS 7
  • docker
  • docker-compose

一、查找鏡像github

docker search gitlab

二、拉取鏡像docker

docker pull gitlab/gitlab-ce

三、構建容器shell

# 切換目錄
mkdir /usr/local/docker
cd /usr/local/docker
touch docker-compose.yml

docker-compose.yml內容以下:bash

version: "3.7"
services:
  gitlab:
    image: gitlab/gitlab-ce
    restart: on-failure
    container_name: gitlab
    ports:
      - '8080:80'
      - '8443:443'
      - '222:22'
    volumes:
      - /usr/local/docker/gitlab/data:/var/opt/gitlab
      - /usr/local/docker/gitlab/logs:/var/log/gitlab
      - /usr/local/docker/gitlab/conf:/etc/gitlab

四、啓動容器ssh

docker-compose up -d

注意:

這樣啓動容器以後,不管使用ssh仍是http方式進行clone時,顯示的地址中的主機名都是容器產生的隨機id,這就致使外部主機沒法解析。gitlab

解決方法:測試

vi gitlab/conf/gitlab.rb
 
 # 修改external_url和gitlab_ssh_host屬性爲本身虛擬機的訪問地址,而後去掉註釋,不要加端口號
 
 external_url 'http://192.168.172.142'
 
 gitlab_rails['gitlab_ssh_host'] = '192.168.172.142'

同時若是在上面指定的端口映射不是默認的,好比上面將ssh端口映射到虛擬機的222端口,這時還須要修改:編碼

gitlab_rails['gitlab_shell_ssh_port'] = 222

2、測試Gitlab

像github同樣,要使用ssh克隆代碼,先要配置ssh祕鑰。url

一、在物理機生成祕鑰

ssh-keygen -t rsa -b 4096 -C "your email"

cd <用戶目錄>/.ssh/

# 拷貝 id_rsa.pub

二、拷貝到gitlab

點擊頭像 > settings > 左導航欄 > SSH keys

三、建立項目

建立項目,測試ssh

注意:

github和gitlab都要用ssh祕鑰,而生成的祕鑰文件都是id_rsa.pub,爲了區分開來,能夠這樣作:

一、在 .ssh目錄下建立config,注意文件名和編碼,內容以下:

Host github.com
  Preferredauthentications publickey
  IdentityFile ~/.ssh/github_rsa

單獨指定github的ssh祕鑰文件爲github_rsa,gitlab使用默認的id_rsa文件;

二、生成github的祕鑰文件

cd <用戶目錄>/.ssh/

ssh-keygen -t rsa -b 4096 -C "your email" -f github_rsa

三、公鑰拷貝到github

四、將私鑰添加到ssh-agent

打開git bash

ssh-agent bash

ssh-add ~/.ssh/github_rsa

而後就OK了。

相關文章
相關標籤/搜索