天天看點

docker image aarch64 x86_64_利用docker安裝中文版GitLab

docker image aarch64 x86_64_利用docker安裝中文版GitLab

GitLab是什麼

GitLab 是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務和GitHub差不多,隻不過是開源的。

為什麼用docker安裝GitLab

docker真是個好東西,部署環境,以及軟體安裝都特别友善,是以我選擇使用docker來安裝GitLab。這裡我選擇安裝中文版的GitLab。

一、安裝docker

docker安裝可以參照我之前的文章基于腳本安裝docker

二、使用 Docker Compose

正常部署時,可以使用 Docker Compose 來配置啟動。建立一個 docker-compose.yml,内容如下:

version: '2'services: gitlab: image: 'twang2218/gitlab-ce-zh:11.1.4' restart: unless-stopped hostname: 'gitlab.example.com' environment: TZ: 'Asia/Shanghai' GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.example.com' gitlab_rails['time_zone'] = 'Asia/Shanghai' # 需要配置到 gitlab.rb 中的配置可以在這裡配置,每個配置一行,注意縮進。 # 比如下面的電子郵件的配置: # gitlab_rails['smtp_enable'] = true # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" # gitlab_rails['smtp_port'] = 465 # gitlab_rails['smtp_user_name'] = "[email protected]" # gitlab_rails['smtp_password'] = "password" # gitlab_rails['smtp_authentication'] = "login" # gitlab_rails['smtp_enable_starttls_auto'] = true # gitlab_rails['smtp_tls'] = true # gitlab_rails['gitlab_email_from'] = '[email protected]' ports: - '80:80' - '443:443' - '22:22' volumes: - config:/etc/gitlab - data:/var/opt/gitlab - logs:/var/log/gitlabvolumes: config: data: logs:
           

然後使用指令 docker-compose up -d 來啟動,停止服務使用 docker-compose down。 如果你的伺服器有域名,将上面的 gitlab.example.com 替換為實際域名。 實驗時,也可以直接修改 /etc/hosts友善測試。比如:

127.0.0.1 gitlab.example.com
           

三、使用 Docker 指令啟動

直接使用 docker 指令要比使用 docker-compose 繁瑣一些,但是可以達到一樣的效果。 首先,Docker 容器資料應該存儲于卷中,在這裡我們使用最簡單的本地命名卷:

  • gitlab-config 存儲 GitLab 配置資訊
  • gitlab-data 存儲資料庫
  • gitlab-logs 存儲日志 然後,我們需要建立自定義網絡,進而讓容器運作于獨立的網絡中,差別于預設網橋。
docker network create gitlab-net
           
  • 準備好後,開始運作 Gitlab 容器:
docker run -d  --hostname gitlab.example.com  -p 80:80  -p 443:443  -p 22:22  --name gitlab  --restart unless-stopped  -v gitlab-config:/etc/gitlab  -v gitlab-logs:/var/log/gitlab  -v gitlab-data:/var/opt/gitlab  --network gitlab-net  twang2218/gitlab-ce-zh:11.1.4
           
  • 如果需要進入容器修改配置檔案,可以用 docker exec 指令進入容器:
$ docker exec -it gitlab [email protected]:/# vi /etc/gitlab/[email protected]:/# gitlab-ctl reconfigureStarting Chef Client, version 12.12.15resolving cookbooks for run list: ["gitlab"]...
           
  • 如需停止服務,直接運作 docker stop gitlab。

如需解除安裝服務及相關内容,可以執行:

docker stop gitlabdocker rm gitlabdocker network rm gitlab-netdocker volume rm gitlab-config gitlab-datagitlab-logs
           

注意事項

登入

啟動 GitLab 後,第一次通路時,會要求設定 root 使用者的密碼,密碼不得小于8位。設定好後,就可以登入使用了。 對于早期版本,可以使用預設的 root 使用者密碼 5iveL!fe 登入。

配置 SSH 端口

這裡運作示例中,無論是使用 docker-compose.yml 還是 docker run 都使用的是 SSH 預設端口 22 去映射容器 SSH 端口。其目的是希望比較自然的使用類似 [email protected]:myuser/awesome-project.git的形式來通路伺服器版本庫。但是,宿主伺服器上預設的 SSH 服務也是使用的 22 端口。是以預設會産生端口沖突。

修改宿主的 SSH 端口

修改宿主的 SSH 端口,使用非 22 端口。比如修改 SSHD 配置檔案,/etc/ssh/sshd_config,将其中的 Port 22 改為其它端口号,然後 service sshd restart。這種方式比較推薦,因為管理用的宿主 SSH 端口改成别的其實更安全。

修改容器的 SSH 端口

修改容器的端口映射關系,比如将 -p 22:22 改為 -p 2222:22,這樣 GitLab 的 SSH 服務端口将是 2222。這樣做會讓使用 GitLab 的 SSH 克隆、送出代碼有些障礙。這種情況要改變使用者使用 Git 的連結方式。 要從之前的:

git clone [email protected]:myuser/awesome-project.git
           

改為明确使用 ssh:// 的 URL 方式。

git clone ssh://[email protected]:2222/myuser/awesome-project.git
           

繼續閱讀