GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Gitea mit Docker unter Ubuntu 20.04

Gitea ist ein kostenloses Open-Source-Softwarepaket zum Selbsthosten eines Git-Servers. Es bietet auch kollaborative Funktionen wie Fehlerverfolgung, Wikis und Codeüberprüfung. Gitea ist eine von der Community betriebene und leichtgewichtige Codelösung, die in Go geschrieben wurde.

Entwickler müssen ihre Codeänderungen während der Arbeit regelmäßig in einem zentralen Repository zusammenführen. Es kann vorkommen, dass Sie ein privates zentrales Repository für Ihr Team benötigen, das Sie selbst hosten und verwalten. Zu diesem Zweck können Sie Gitea verwenden. Es ähnelt GitHub, Bitbucket usw.

In diesem Tutorial lernen wir, wie man Gitea mit Docker installiert auf Ubuntu 20.04 .

Voraussetzungen

  • Ein mit Ubuntu 20.04 installierter Knoten
  • Ein Benutzer mit sudo-Berechtigung

Schritt 1:Installieren Sie Docker auf Ubuntu

Gitea stellt die neueste stabile Version seiner Docker-Images aus dem Docker-Hub bereit. Es kann aus dem Quellcode, binär und auch als Paket installiert werden. Hier stellen wir als Docker-Image bereit.

Um Docker zu installieren, müssen Sie einige Voraussetzungen installieren:

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

Fügen wir nun den GP-Schlüssel des Docker-Repositorys hinzu:

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

Fügen Sie nun Docker zu den APT-Quellen hinzu. Der Cache wird automatisch aktualisiert.

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

Installieren Sie nun Docker mit dem folgenden Befehl:

$ sudo apt install docker-ce

Fügen Sie den Benutzer der Docker-Gruppe hinzu, damit er den Docker-Befehl ohne sudo-Berechtigungen verwenden kann:

$ sudo usermod -aG docker username

Schritt 2:Nginx-Docker ausführen

Um HTTPS zu aktivieren, können Sie TLS-Beendigungsproxys wie Nginx, Apache2 oder Caddy verwenden. In unserem Fall führen wir einen unabhängigen Container als unseren Nginx-Reverse-Proxy aus.

$ 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

Es hilft uns, den gesamten Standard-HTTP-Datenverkehr auf HTTPS umzuleiten, wenn Sie Ihre Zertifikate integrieren. Sie sollten das zugeordnete Volume zum Integrieren Ihrer Zertifikate beachten, das /etc/nginx/certs ist

Öffnen Sie nun die Ports 80 und 443 auf der Firewall:

$ sudo ufw allow 80,443/tcp

Stellen Sie außerdem sicher, dass Sie ssh öffnen, bevor Sie UFW aktivieren, falls noch nicht geschehen

$ sudo ufw allow 'OpenSSH'

Aktivieren Sie jetzt UFW, falls noch nicht geschehen

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

Schritt 3:MySQL-Docker ausführen

Gitea benötigt eine Datenbank, um seine Daten zu speichern. Gitea unterstützt MySQL/MariaDB, PostgreSQL, SQLite und MSSQL. Hier führen wir einen MySQL-Container aus, um alle Daten zu speichern.

$ 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

Wir können prüfen, ob unser Container läuft

$ 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 lauscht standardmäßig auf Verbindungen auf Port 3000 und Reverser-Proxy auf HTTP- und HTTPS-Ports. Wenn Sie eine Firewall haben, stellen Sie sicher, dass die Ports für den Zugriff auf die Gitea-Weboberfläche geöffnet sind.

Werfen wir einen Blick auf einige Details unseres MySQL-Containers, wie z. B. die IP-Adresse, da wir sie später benötigen

$ 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
                        }
...
...

Verbinden wir uns jetzt mit dem MySQL-Container

$ docker container exec -it mysql-gitea bash

Greifen Sie dann auf die MySQL-Befehlszeile zu

# mysql -u root -po$su876HG@zvsRt3BT

Erstellen Sie nun die Datenbank und den Benutzer für 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;

Verlassen Sie nun auch den Container

# exit;

Schritt 4:SSL-Zertifikat konfigurieren

Um über einen sicheren Domainnamen auf Ihr Gitea zuzugreifen, müssen Sie das SSL-Zertifikat in den Nginx-Ordner kopieren. Sie können das kostenlose Zertifikat von Let's Encrypt oder ein Zertifikat einer Zertifizierungsstelle verwenden.

Kopieren Sie das Zertifikat

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

Kopieren Sie den Schlüssel

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

Schritt 5:Gitea Docker ausführen

Um Gitea auszuführen, müssen wir einige Informationen über den MySQL-Container angeben, der zuvor gestartet wurde, wie zum Beispiel:

  • Der Datenbanktyp, der mysql ist
  • die IP-Adresse des MySQL-Containers
  • der Name der Datenbank
  • der Datenbankbenutzername
  • das Passwort des Datenbankbenutzers
  • der von Gitea verwendete Port
$ 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

Wir können prüfen, ob es läuft

$ 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

Jetzt können Sie versuchen, über die URL https://giteadomain.com

auf Gitea zuzugreifen

Gehen Sie nun auf „Anmelden“, um den Installationsvorgang fortzusetzen. Sie können einige Informationen wie den Seitentitel personalisieren.

Stellen Sie sicher, dass Sie den Domänennamen angeben, wo es erforderlich ist. Geben Sie auch die Informationen für das Administratorkonto an

Nach der Installation werden Sie angemeldet

Sie können ein neues Repository erstellen

Sie haben das erste Repository

Schlussfolgerung

Jetzt kennen Sie alle Schritte zur Installation von Gitea mit Docker auf Ubuntu 20.04 – Ihrem privaten zentralen Repository für Ihren Code. Sie können es je nach Bedarf verwalten.


Ubuntu
  1. So installieren Sie Docker unter Ubuntu 18.04

  2. So installieren Sie Kubernetes unter Ubuntu 18.04

  3. So installieren Sie Docker unter Ubuntu 16.04

  4. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  5. Wie installiere ich Docker unter Ubuntu 18.04?

So installieren Sie Maven unter Ubuntu 18.04

So installieren Sie den selbstgehosteten Git-Dienst von Gitea mit Docker unter Ubuntu 18.04

So installieren Sie Docker unter Ubuntu 20.04, 18.04, 21.04

So installieren Sie Docker unter Ubuntu 14.04

So installieren Sie Gitea auf Ubuntu mit Docker

So installieren Sie Docker unter Ubuntu 18.04