Docker-compose を使用して GitLab をデプロイする方法

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします

1. Dockerをインストールする

必要なツールをインストールする

次のようにコードをコピーします
[root@vm_10_14_centos ~]# yum -y yum-utils デバイスマッパー永続データ lvm2 をインストールします

Docker-ceイメージソースを追加してインストールする

[root@vm_10_14_centos ~]# yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@vm_10_14_centos ~]# yum makecache fast
[root@vm_10_14_centos ~]# yum -y install docker-ce[root@gitlab ~]# yum makecache fast
[root@vm_10_14_centos ~]# yum -y インストール docker-ce
[root@vm_10_14_centos ~]# systemctl dockerを起動します
[root@vm_10_14_centos ~]# systemctl docker を有効にする
/etc/systemd/system/multi-user.target.wants/docker.service から /usr/lib/systemd/system/docker.service へのシンボリックリンクを作成しました。

Dockerイメージアクセラレーションを追加する

[root@vm_10_14_centos ~]# vim /etc/docker/daemon.json
{
"レジストリミラー": ["https://9w1hl6qt.mirror.aliyuncs.com"]
}
[root@vm_10_14_centos ~]# systemctl デーモンリロード
[root@vm_10_14_centos ~]# systemctl dockerを再起動します
[root@vm_10_14_centos ~]# rpm -qa docker
[root@vm_10_14_centos ~]# rpm -qa docker-ce
docker-ce-18.09.0-3.el7.x86_64
[root@vm_10_14_centos ~]# docker --version
Docker バージョン 18.09.0、ビルド 4d60db4
[root@vm_10_14_centos ~]# docker バージョン
クライアント:
 バージョン: 18.09.0
 APIバージョン: 1.39
 Goバージョン: go1.10.4
 Gitコミット: 4d60db4
 作成日: 2018年11月7日水曜日 00:48:22
 OS/アーキテクチャ: linux/amd64
 実験的: 偽

サーバー: Docker Engine - コミュニティ
 エンジン:
 バージョン: 18.09.0
 API バージョン: 1.39 (最小バージョン 1.12)
 Goバージョン: go1.10.4
 Gitコミット: 4d60db4
 作成日: 2018年11月7日水曜日 00:19:08
 OS/アーキテクチャ: linux/amd64
 実験的: 偽

2. Docker-composeをインストールする

Docker-composeバイナリをダウンロードし、実行権限を追加します。

[root@vm_10_14_centos ~]# curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
 % 合計 % 受信 % 転送 平均速度 時間 時間 時間 現在
         ダウンロード アップロード 合計使用時間 残り 速度
100 617 0 617 0 0 959 0 --:--:-- --:--:-- --:--:-- 958
100 11.2M 100 11.2M 0 0 1824k 0 0:00:06 0:00:06 --:--:-- 2422k
[root@vm_10_14_centos ~]# chmod +x /usr/local/bin/docker-compose
[root@vm_10_14_centos ~]# docker-compose --version
docker-compose バージョン 1.23.2、ビルド 1110ad01

3. Gitlabをインストールする

(1) docker-composeのymlファイルを編集する

[root@vm_10_14_centos ~]# mkdir gitlab
[root@vm_10_14_centos ~]# cd gitlab/
[root@vm_10_14_centos gitlab]# vim docker-compose.yml 
バージョン: '2'
サービス:
 gitlab:
  イメージ: 'twang2218/gitlab-ce-zh:11.1.4'
  コンテナ名: "gitlab"
  再起動: 停止しない限り
  特権: true
  ホスト名: 'gitlab'
  環境:
  TZ: 「アジア/上海」
  GITLAB_OMNIBUS_CONFIG: |
   外部URL 'http://129.204.133.242'
   gitlab_rails['time_zone'] = 'アジア/上海'
   gitlab_rails['smtp_enable'] = true
   gitlab_rails['smtp_address'] = "smtp.aliyun.com"
   gitlab_rails['smtp_port'] = 465
   gitlab_rails['smtp_user_name'] = "[email protected]" #独自のaliyunメールボックスを使用するgitlab_rails['smtp_password'] = "axbc1kof"
   gitlab_rails['smtp_domain'] = "aliyun.com"
   gitlab_rails['smtp_authentication'] = "ログイン"
   gitlab_rails['smtp_enable_starttls_auto'] = true
   gitlab_rails['smtp_tls'] = true
   gitlab_rails['gitlab_email_from'] = '[email protected]'
   gitlab_rails['gitlab_shell_ssh_port'] = 22
  ポート:
  - '80:80'
  - '443:443'
  - '22:22'
  ボリューム:
  - /opt/gitlab/config:/etc/gitlab
  - /opt/gitlab/データ:/var/opt/gitlab
  - /opt/gitlab/logs:/var/log/gitlab

(2)関連ディレクトリを作成する

[root@vm_10_14_centos gitlab]# mkdir /opt/gitlab/{config,data,logs} -p
[root@vm_10_14_centos gitlab]# ls -l /opt/gitlab/
合計 12
drwxr-xr-x 2 ルート ルート 4096 12月8日 11:35 構成
drwxr-xr-x 2 ルート ルート 4096 12月8日 11:35 データ
drwxr-xr-x 2 ルート ルート 4096 12月8日 11:35 ログ

(3)gitlabイメージの中国語版を取得する

[root@vm_10_14_centos gitlab]# docker pull twang2218/gitlab-ce-zh:11.1.4
11.1.4: twang2218/gitlab-ce-zh からのプル
8ee29e426c26: プル完了 
6e83b260b73b: プル完了 
e26b65fd1143: プル完了 
40dca07f8222: プル完了 
b420ae9e10b3: プル完了 
a218309dd589: プル完了 
5c60fd7ba0ce: プル完了 
659c2144b5a3: プル完了 
8289bbac0d0e: プル完了 
31bbd150e8a7: プル完了 
9114e78243fa: プル完了 
0b97fa2153bc: プル完了 
308c7e15be6a: プル完了 
b7f31b8e487d: プル完了 
cbbb6dec5000: プル完了 
0241c9ad6a16: プル完了 
7fa6f0b53edd: プル完了 
1c2861e152b2: プル完了 
0536f3466f66: プル完了 
ダイジェスト: sha256:3c2372e3285e6d6933ddebb5ee3ae0c4bbf7cb235084e54d33d7f0ddf4813c4a
ステータス: twang2218/gitlab-ce-zh:11.1.4 の新しいイメージをダウンロードしました
[root@vm_10_14_centos gitlab]# docker イメージ ls
リポジトリ タグ イメージ ID 作成 サイズ
twang2218/gitlab-ce-zh 11.1.4 1935cc9f8798 4か月前 1.61GB

(4)gitlabコンテナを起動する

[root@vm_10_14_centos gitlab]# docker-compose up -d
デフォルトドライバーでネットワーク「gitlab_default」を作成しています
Gitlab を作成しています... エラー

エラー: gitlab の場合、サービス gitlab を開始できません: b'ドライバーがエンドポイント gitlab での外部接続のプログラミングに失敗しました (9308ca74b8491c556263eac9fb9b0abcb25258d9e2df5733fc4d9143d6b18dcc): ユーザーランド プロキシの開始エラー: listen tcp 0.0.0.0:22: bind: アドレスが既に使用されています'

エラー: gitlab の場合、サービス gitlab を開始できません: b'ドライバーがエンドポイント gitlab での外部接続のプログラミングに失敗しました (9308ca74b8491c556263eac9fb9b0abcb25258d9e2df5733fc4d9143d6b18dcc): ユーザーランド プロキシの開始エラー: listen tcp 0.0.0.0:22: bind: アドレスが既に使用されています'
エラー: プロジェクトの起動中にエラーが発生しました。
 
[root@vm_10_14_centos gitlab]# vim /etc/ssh/sshd_config 
[root@vm_10_14_centos gitlab]# systemctl sshdを再起動します
[root@vm_10_14_centos gitlab]# netstat -tulnp |grep 22
tcp 0 0 0.0.0.0:60022 0.0.0.0:* LISTEN 4044/sshd

ここで注意すべき点は、gitlabコンテナはポート22を使用する必要があり、ホストと競合できないため、ホストのsshdサービスのリスニングポートを変更する必要があることです。

[root@vm_10_14_centos gitlab]# docker-compose ps
名前 コマンド 状態 ポート
----------------------------------------------------------------------------------------------
------------------------
gitlab /assets/wrapper 稼働中 (正常) 0.0.0.0:22->22/tcp、0.0.0.0:443-
>443/tcp、0.0.0.0:80->80/tcp

(5)Gitlab設定の起動

[root@vm_10_14_centos gitlab]# chmod +x /etc/rc.local
[root@vm_10_14_centos gitlab]# ls -l /etc/rc.local
lrwxrwxrwx. 1 ルート ルート 13 7月 7 16:43 /etc/rc.local -> rc.d/rc.local
[root@vm_10_14_centos gitlab]# echo "cd /root/gitlab && docker-compose up -d" >>
ローカル
[root@gitlab gitlab]# tail -1 /etc/rc.local
cd /root/gitlab && docker-compose up -d

(6)GitLab管理インターフェース

アドレス: http://129.204.133.242

アカウント: ルート

パスワード: 初回ログイン時に設定する



以下もご興味があるかもしれません:
  • Clickhouse Docker クラスターの展開と構成を例を使って説明します
  • docker-compose デプロイメント PHP プロジェクト例の詳細な説明
  • Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順
  • docker-compose でデプロイしたときに MySQL にアクセスできなくなる問題の簡単な分析
  • docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

<<:  JavaScript でドラッグ スライダー パズルの検証機能を実装します (html5、canvas)

>>:  MySql 5.6.36 64 ビット グリーン バージョンのインストール グラフィック チュートリアル

推薦する

WeChatミニプログラムがシームレスなスクロールを実現

この記事の例では、WeChatアプレットのシームレスなスクロールを実現するための具体的なコードを参考...

さまざまなブラウザに対応するためにCSSで指定フォント@font-faceを導入する際の問題

Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...

JavaScript における 3 つの for ループ ステートメントの使用の概要 (for、for...in、for...of)

序文JS に触れるすべての開発者は、必然的に for ループを扱うことになります。結局のところ、fo...

MySQLがサブクエリと結合の使用を推奨しない理由

ページ分割されたクエリを実行するには: 1. MySQL の場合、サブクエリと結合の使用は推奨されま...

HTML_PowerNode 入門 Java アカデミー

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...

ローカル フォルダー内の画像を読み込んで表示するための HTML サンプル コード

一つの目的Html ページでローカル フォルダーを選択すると、フォルダーとそのサブフォルダー内のすべ...

ネイティブ JavaScript を使用して計算機のサンプル コードを開発する

計算機の主な機能は数値計算を実行することです。計算機機能の Web インスタンスを開発すると、js ...

Docker コンテナのマウントディレクトリ操作の表示

Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...

MySql のグループ化と各グループからランダムに 1 つのデータを取得する

アイデア: 最初にランダムに並べ替えてからグループ化します。 1. テーブルを作成します。 テーブル...

Docker 大規模プロジェクトのコンテナ化変革

仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...

JavaScriptはキャンバスを使用して座標と線を描画します

この記事では、JavaScriptでキャンバスを使用して座標と線を描く具体的なコードを参考までに紹介...

Vue はシームレスなカルーセル効果 (マーキー) を実現します

この記事では、シームレスなカルーセル効果を実現するためのVueの具体的なコードを例として紹介します。...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

WeChatアプレットでのwxsファイルの素晴らしい使い方をいくつか紹介します

目次序文応用フィルタードラッグファイル間での参照の受け渡しwxsはjsロジック層にパラメータを渡しま...

JavaScript のマイクロタスクとマクロタスクの説明

序文: js はシングルスレッド言語なので、非同期にすることは不可能です。しかし、js のホスト環境...