GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04でDockerを使用してGiteaセルフホストGitサービスをインストールする方法

GiteaはGogsのフォークであり、セルフホストのGitサービスを簡単に使用できます。これは、GitHub、Bitbucket、およびGitlabに似ています。 Giteaは、Goで記述された軽量のコードホスティングソリューションであり、最小限のハードウェア要件で実行できます。これはクロスプラットフォームアプリケーションであり、Windows、Linux、MacOS、ARMなどのGoをコンパイルできる場所ならどこでも実行できます。

このチュートリアルでは、Giteaを使用して軽量Gitサービスをインストールおよび構成する方法を段階的に説明します。 Dockerを使用してGiteaサーバーをデプロイし、PostgreSQLデータベースとTraefikリバースプロキシを使用します。このガイドでは、最新のUbuntu18.04サーバーを使用します。

前提条件
  • Ubuntu 18.04
  • root権限

何をしますか?

  1. Docker-CEをインストールする
  2. DockerComposeをインストールする
  3. Dockerを使用してGiteaをコンテナとしてデプロイする
  4. Giteaのインストール後
  5. 最初のリポジトリを作成する
  6. 最初のコミットのテスト
ステップ1-Docker-CEをインストールします

このガイドで行う最初のステップは、DockerコミュニティエディションをUbuntu18.04サーバーにインストールすることです。 DockerCEパッケージを公式のDockerリポジトリからインストールします。

以下のコマンドを実行して、DockerおよびDockerリポジトリを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

'add-apt-repository'コマンドは、リポジトリを自動的に更新します。

次に、DockerCEパッケージをインストールします。

sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu

インストールが完了したら、Dockerサービスを開始し、システムの起動時に毎回起動できるようにします。

sudo systemctl start docker
sudo systemctl enable docker

Docker CEは、Ubuntu18.04サーバーで稼働しています。 Dockerのバージョンを確認して、インストールを確認します。

docker version

または、Docker'hello-world'を実行します。

docker run hello-world

ステップ2-DockerComposeをインストールします

Docker-Composeは、マルチコンテナーDockerアプリケーションを定義および管理するためのコマンドラインツールです。これにより、サービスとしてのコンテナーを作成でき、開発、テスト、およびステージング環境に最適です。

バイナリファイルをダウンロードしてDockerComposeをインストールし、実行可能にします。

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

次に、docker-composeコマンドを確認します。

docker-compose version

DockerComposeがインストールされました。

ステップ3-GiteaをDockerコンテナとしてデプロイする

このステップでは、PostgreSQLデータベースとTraefikリバースプロキシを含むすべてのサービス構成を含む新しいdocker-composeスクリプトを作成します。 'deployment'という名前のディレクトリにすべてのデプロイメントファイルを設定します。

カスタムDockerネットワークを作成する

展開構成を作成する前に、新しいカスタムブリッジネットワークを作成しましょう。これは、外部サービスのtraefikリバースプロキシに使用されます。

リストDockerネットワークを確認してください。

docker network ls

次に、「hakasenet」という名前の新しいカスタムブリッジネットワークを作成します。

docker network create hakasenet

もう一度確認してください。

docker network ls

これで、リストに「hakasenet」ネットワークが追加されます。

デプロイメントディレクトリとファイルのセットアップ

'deployment'という名前の新しいディレクトリとその上に'docker-compose.yml'スクリプトを作成します。

mkdir deployment; cd deployment
touch docker-compose.yml

次に、新しいディレクトリ「gitea」と「postgres」データボリュームを作成します。

mkdir -p gitea/ postgres/

新しいファイル「acme.json」を作成し、ファイルの権限を変更します。 Letsencryptデータを保存するために使用されます。

touch acme.json
chmod 600 acme.json

次に、グローバルtraefik構成'traefik.toml'ファイルを作成します。

touch traefik.toml

以下は、Dockerを使用してGiteaをインストールするために用意したファイルとディレクトリです。

tree

PostgreSQLサービスのセットアップ

データベースサービスPostgreSQLは、構成する最初のサービスです。データベースサービスは、内部Dockerネットワークでのみ実行されます。

また、データベース名、ユーザー、パスワードとして「gitea」を使用してPostgres 9.6イメージを使用し、postgresデータボリュームを設定します。

vimを使用して「docker-compose.yml」ファイルを編集します。

vim docker-compose.yml

以下に構成を貼り付けます。

version: "3"

networks:
  hakasenet:
    external: true
  internal:
    external: false

services:
  db:
    image: postgres:9.6
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    labels:
      - "traefik.enable=false"
    networks:
      - internal
    volumes:
      - ./postgres:/var/lib/postgresql/data

保存して終了します。

Traefikリバースプロキシのセットアップ

次に、Giteaインストール用にTraefikリバースプロキシを構成します。

traefikサービスはHTTPおよびHTTPSのデフォルトポートで実行され、「hakasenet」という名前のカスタムブリッジネットワークで実行されます。「traefik.toml」ファイルで定義されるLetsencrypt証明書を使用するように構成します。

>

作成スクリプトを編集します。

vim docker-compose.yml

dbサービス構成の下に構成を貼り付けます。

  traefik:
    image: traefik:latest
    command: --docker
    ports:
      - 80:80
      - 443:443
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dashboard"
      - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
      - "traefik.port=8080"
    networks:
      - hakasenet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    container_name: traefik
    restart: always

保存して終了します。

次に、「traefik.toml」構成ファイルを編集します。

vim traefik.toml

そして、次の構成を貼り付けます。

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable Traefik Dashboard on port 8080
#with basic authentication method
#hakase and password
[entryPoints.dash]
address=":8080"
[entryPoints.dash.auth]
[entryPoints.dash.auth.basic]
    users = [
        "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.",
    ]

[api]
entrypoint="dash"
dashboard = true

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

保存して終了します。

注:

  • 有効なメールアドレスでacmeletsencryptメールを変更します。
Giteaサービスのセットアップ

'docker-compose.yml'構成ファイルを編集します。

vim docker-compose.yml

行の一番下にgiteaサービス構成を貼り付けます。

  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - internal
    volumes:
      - ./gitea:/data
    ports:
      - "3000"
      - "22"
    labels:
      - "traefik.enabled=true"
      - "traefik.backend=gitea"
      - "traefik.frontend.rule=Host:git.hakase-labs.io"
      - "traefik.docker.network=hakasenet"
      - "traefik.port=3000"
    networks:
      - internal
      - hakasenet
    depends_on:
      - db
      - traefik

保存して終了します。

GiteaサービスはTCPポート「3000」で実行され、これら2つのDockerネットワーク「internal」と「hakasenet」を使用し、ドメイン「git.hakase-labs.io」のtraefikリバースプロキシで実行されます。

>

Dockerは、Giteaデプロイメントの構成を構成します。

すべてのサービスをデプロイする

次に、以下の「docker-compose」コマンドを使用してスタックをデプロイします。

docker-compose up -d

このコマンドは、必要なすべてのDockerイメージをダウンロードし、docker-composeスクリプトで定義されたサービスを実行します。

そして、完了したら、以下のpsオプションを使用してdockerで利用可能なサービスを確認します。

docker-compose ps

これで、次のような結果が得られます。

これで、PostgreSQLデータベース、Gitea、およびtraefikリバースプロキシコンテナが稼働しています。データベースサービスはデフォルトのポート「5432」で実行され、giteaサーバーはポート「3000」で実行され、traefikプロキシは外部ネットワーク/インターネットからアクセス可能なHTTPおよびHTTPSポートで実行されます。

Dockerチェックからすべてのログをチェックする場合は、以下のコマンドを実行します。

docker-compose logs

ステップ4-Giteaのインストール後

Webブラウザーを開き、GiteaURLインストールを入力します。私のは:

https://git.hakase-labs.io/

これで、デフォルトのGiteaページが表示されます。

URLにインストールパスを追加します。

https://git.hakase-labs.io/install

これで、Giteaのインストールページが表示されます。

データベース構成

PostgreSQLデータベースの詳細を入力し、「 db」を使用します 'ホストとして。

一般的なGitea構成

「サイトタイトル」を独自のタイトルに変更し、「SSHサーバードメイン」(httpsなし)と「GiteaベースURL」をgiteaサーバーURLに変更します。

管理者アカウント設定

管理者設定で、管理者のユーザー名、パスワード、メールアドレスを入力します。

次に、[Giteaのインストール]ボタンをクリックします。

そして、Giteaのデフォルトのユーザーダッシュボードにリダイレクトされます。

ステップ5-Giteaに最初のリポジトリを作成する

ユーザーのホームページで、'+'をクリックします ボタン。

次に、作成するリポジトリの詳細を入力します。

[リポジトリの作成]ボタンをクリックします。

リポジトリが作成されました。

ステップ6-最初のコミットのテスト

ターミナルシェルに戻り、デフォルトのgitユーザーとメールを設定します。

以下のgitコマンドを実行します。

git config --global user.name "hakase"
git config --global user.email "[email protected]"

次に、リポジトリのクローンを作成します。

git clone https://git.hakase-labs.io/hakase/myrepo.git

リポジトリディレクトリ「myyrepo」に移動し、README.mdファイルを編集します。

cd myrepo/
vim README.md

READMEファイルに変更を加えてから、保存して終了します。

次に、リポジトリをコミットします。

git add .
git commit -m 'Edit the README.md file by hakase-labs'

そしてそれをサーバーにプッシュします。

git push origin master

ユーザー名とパスワードを入力します。

そして、以下が結果になるはずです。

リポジトリページにアクセスして、以下のように変更を取得していることを確認してください。

Ubuntu18.04でのDockerを使用したGiteaのインストールが正常に完了しました。


Ubuntu
  1. Ubuntu18.04にDockerをインストールする方法

  2. Ubuntu 18.04/20.04にGitをインストールする方法

  3. Ubuntu 18.04 / Ubuntu 18.10 /Ubuntu19.04にDockerをインストールする方法

  1. Ubuntu18.04にKubernetesをインストールする方法

  2. Ubuntu18.04にDockerComposeをインストールする方法

  3. UbuntuにRancherをインストールする方法

  1. Ubuntu20.04にDockerComposeをインストールする方法

  2. Ubuntu22.04にDockerをインストールする方法

  3. Ubuntu20.04にGiteaをインストールする方法