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権限
何をしますか?
- Docker-CEをインストールする
- DockerComposeをインストールする
- Dockerを使用してGiteaをコンテナとしてデプロイする
- Giteaのインストール後
- 最初のリポジトリを作成する
- 最初のコミットのテスト
このガイドで行う最初のステップは、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
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がインストールされました。
このステップでは、PostgreSQLデータベースとTraefikリバースプロキシを含むすべてのサービス構成を含む新しいdocker-composeスクリプトを作成します。 'deployment'という名前のディレクトリにすべてのデプロイメントファイルを設定します。
展開構成を作成する前に、新しいカスタムブリッジネットワークを作成しましょう。これは、外部サービスの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メールを変更します。
'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
Webブラウザーを開き、GiteaURLインストールを入力します。私のは:
https://git.hakase-labs.io/
これで、デフォルトのGiteaページが表示されます。
URLにインストールパスを追加します。
https://git.hakase-labs.io/install
これで、Giteaのインストールページが表示されます。
PostgreSQLデータベースの詳細を入力し、「 db」を使用します 'ホストとして。
「サイトタイトル」を独自のタイトルに変更し、「SSHサーバードメイン」(httpsなし)と「GiteaベースURL」をgiteaサーバーURLに変更します。
管理者設定で、管理者のユーザー名、パスワード、メールアドレスを入力します。
次に、[Giteaのインストール]ボタンをクリックします。
そして、Giteaのデフォルトのユーザーダッシュボードにリダイレクトされます。
ユーザーのホームページで、'+'をクリックします ボタン。
次に、作成するリポジトリの詳細を入力します。
[リポジトリの作成]ボタンをクリックします。
リポジトリが作成されました。
ターミナルシェルに戻り、デフォルトの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のインストールが正常に完了しました。