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

Ubuntu20.04でDockerを使用してGiteaをインストールする方法

Giteaは、Gitサーバーをセルフホスティングするための無料のオープンソースソフトウェアパッケージです。また、バグトラッキング、Wiki、コードレビューなどのコラボレーション機能も提供します。 Giteaは、Goで記述されたコミュニティ主導の軽量コードソリューションです。

開発者は、作業時にコードの変更を中央リポジトリに定期的にマージする必要があります。自分でホストおよび管理するチーム用のプライベート中央リポジトリが必要になる場合があります。この目的でGiteaを使用できます。 GitHub、Bitbucketなどに似ています。

このチュートリアルでは、dockerを使用してGiteaをインストールする方法を学びます。 Ubuntu 20.04

前提条件

  • Ubuntu20.04でインストールされたノード
  • sudo特権を持つユーザー

ステップ1:UbuntuにDockerをインストールする

Giteaは、DockerハブからDockerイメージの最新の安定バージョンを提供します。ソース、バイナリ、およびパッケージとしてインストールできます。ここでは、Dockerイメージとしてデプロイしています。

Dockerをインストールするには、いくつかの前提条件をインストールする必要があります:

$ sudo apt install apt-transport-https ca-certificates curl software-properties-common

それでは、DockerリポジトリのGPキーを追加しましょう:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

次に、DockerをAPTソースに追加します。キャッシュが自動的に更新されます。

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

次に、次のコマンドを使用してdockerをインストールします。

$ sudo apt install docker-ce

ユーザーをdockerグループに追加して、sudo権限なしでdockerコマンドを使用できるようにします。

$ sudo usermod -aG docker username

ステップ2:Nginxdockerを実行する

HTTPSを有効にするには、Nginx、Apache2、CaddyなどのTLSターミネーションプロキシを使用できます。この例では、Nginxリバースプロキシとして独立したコンテナを実行します。

$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy

証明書を統合するときに、すべてのデフォルトのHTTPトラフィックをHTTPSにリダイレクトするのに役立ちます。 /etc/nginx/certsである証明書を統合するためにマップされたボリュームに注意する必要があります

次に、ファイアウォールのポート80と443を開きます。

$ sudo ufw allow 80,443/tcp

また、UFWをまだ有効にしていない場合は、有効にする前に必ずsshを開いてください

$ sudo ufw allow 'OpenSSH'

まだ有効になっていない場合はUFWを有効にします

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

ステップ3:MySQLdockerを実行する

Giteaには、データを保存するためのデータベースが必要です。 Giteaは、MySQL / MariaDB、PostgreSQL、SQLite、およびMSSQLをサポートしています。ここでは、すべてのデータを保持するためにMySQLコンテナを実行します。

$ docker run -d --name mysql-gitea -e MYSQL_ROOT_PASSWORD=o$su876HG@zvsRt3BT -v /opt/docker-volume/mysql-gitea:/var/lib/mysql mysql:5.7

コンテナが実行されているかどうかを確認できます

$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS          PORTS                                                                      NAMES
6d41fec8b0e4   mysql:5.7             "docker-entrypoint.s…"   2 hours ago   Up 2 hours      3306/tcp, 33060/tcp                                                        mysql-gitea
ec9d83a3944e   etopian/nginx-proxy   "forego start -r"        3 days ago    Up 24 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

Giteaはデフォルトで、ポート3000で接続をリッスンし、HTTPおよびHTTPSポートでリバーサープロキシをリッスンします。ファイアウォールを使用している場合は、GiteaWebインターフェイスにアクセスするためにポートが開いていることを確認してください。

後で必要になるため、IPアドレスなどのMySQLコンテナの詳細を見てみましょう

$ docker inspect mysql-gitea
[
    {
        "Id": "6d41fec8b0e4b6ca465444d5cfea11913decddfd7586f4796702463cf08897fe",
        "Created": "2021-10-21T23:48:20.709365573Z",
...
...
        "Networks": {
                        "bridge": {
                            "IPAMConfig": null,
                            "Links": null,
                            "Aliases": null,
                            "NetworkID": "3f0b32613606db9e0761af15b7fa5d7f7c3b86f4d3b4668d574c579b9468915f",
                            "EndpointID": "f029fc1797c70d090da19d30cb31ca34c1b6baf4537a807397e931f87262f867",
                            "Gateway": "172.17.0.1",
                            "IPAddress": "172.17.0.3",
                            "IPPrefixLen": 16,
                            "IPv6Gateway": "",
                            "GlobalIPv6Address": "",
                            "GlobalIPv6PrefixLen": 0,
                            "MacAddress": "02:42:ac:11:00:03",
                            "DriverOpts": null
                        }
...
...

それでは、MySQLコンテナに接続しましょう

$ docker container exec -it mysql-gitea bash

次に、MySQLコマンドラインにアクセスします

# mysql -u root -po$su876HG@zvsRt3BT

次に、Giteaのデータベースとユーザーを作成します

mysql> CREATE USER 'gitea-user'@'%' IDENTIFIED BY '34@zv$TKji@s097BB';
mysql> CREATE DATABASE giteadb;
mysql> GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea-user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

次に、コンテナも終了します

# exit;

ステップ4:SSL証明書を構成する

安全なドメイン名でGiteaにアクセスするには、SSL証明書をNginxフォルダーにコピーする必要があります。無料のLet'sEncrypt証明書または認証局からの証明書を使用できます。

証明書をコピーする

$ cp gitea.websitefortesting.com.crt /etc/nginx/certs/

キーをコピーする

$ cp gitea.websitefortesting.com.key /etc/nginx/certs/

ステップ5:Giteadockerを実行する

Giteaを実行するには、次のような以前に起動されたMySQLコンテナに関する情報を示す必要があります。

  • mysqlであるデータベースのタイプ
  • mysqlコンテナのアドレスIP
  • データベースの名前
  • データベースユーザー名
  • データベースユーザーのパスワード
  • giteaが使用するポート
$ docker run -d --name gitea-selfhosted -v /opt/docker-volume/gitea-selfhosted:/data -p 3000:3000 -e VIRTUAL_HOST=gitea.websitefortesting.com -e VIRTUAL_PORT=3000 -e USER_UID=1001 -e USER_GID=1001 -e DB_TYPE=mysql -e DB_HOST=172.17.0.3:3306 -e DB_NAME=giteadb -e DB_USER=gitea-user -e DB_PASSWD=34@zv$TKji@s097BB gitea/gitea:1.8

実行されているかどうかを確認できます

$ docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
321b870a0735   gitea/gitea:1.8       "/usr/bin/entrypoint…"   11 seconds ago   Up 10 seconds   22/tcp, 0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                          gitea-selfhosted
6d41fec8b0e4   mysql:5.7             "docker-entrypoint.s…"   2 hours ago      Up 3 minutes    3306/tcp, 33060/tcp                                                        mysql-gitea
ec9d83a3944e   etopian/nginx-proxy   "forego start -r"        3 days ago       Up 29 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   nginx

これで、URL https://giteadomain.com

を使用してGiteaにアクセスしてみることができます。

次に、インストールプロセスを続行するために、「サインイン」に移動します。サイトのタイトルなど、いくつかの情報をパーソナライズできます。

必要な場所にドメイン名を必ず指定してください。管理者アカウントの情報も示してください

インストール後、ログインします

新しいリポジトリを作成できます

最初のリポジトリがあります

結論

これで、Ubuntu20.04にDockerを使用してGiteaをインストールするためのすべての手順がわかりました。これはコードのプライベート中央リポジトリです。必要に応じて管理できるようになります。


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

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

  3. Ubuntu 18.04にDockerをインストールする方法は?

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

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

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

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

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

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