GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Gitea usando Docker su Ubuntu 20.04

Gitea è un pacchetto software gratuito e open source per l'hosting automatico di un server Git. Offre anche funzionalità collaborative come il monitoraggio dei bug, i wiki e la revisione del codice. Gitea è una soluzione di codice leggera e guidata dalla community scritta in Go.

Gli sviluppatori devono unire regolarmente le modifiche al codice in un repository centrale durante il lavoro. Può succedere che tu debba avere un repository centrale privato per il tuo team che ospiterai e gestirai da solo. Puoi usare Gitea per questo scopo. È simile a GitHub, Bitbucket e così via.

In questo tutorial impariamo come installare Gitea utilizzando la finestra mobile su Ubuntu 20.04 .

Prerequisiti

  • Un nodo installato con Ubuntu 20.04
  • Un utente con privilegio sudo

Passaggio 1:installa Docker su Ubuntu

Gitea fornisce l'ultima versione stabile delle sue immagini Docker dall'hub Docker. Può essere installato da sorgente, binario e anche come pacchetto. Qui stiamo distribuendo come immagine Docker.

Per installare la finestra mobile, dovrai installare alcuni prerequisiti:

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

Ora aggiungiamo la chiave GP del repository docker:

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

Ora aggiungi Docker ai sorgenti APT. Aggiornerà automaticamente la cache.

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

Ora installa la finestra mobile usando il seguente comando:

$ sudo apt install docker-ce

Aggiungi l'utente al gruppo Docker in modo che possa utilizzare il comando Docker senza privilegi sudo:

$ sudo usermod -aG docker username

Passaggio 2:esegui la finestra mobile Nginx

Per abilitare HTTPS puoi utilizzare proxy di terminazione TLS come Nginx, Apache2 o Caddy. Nel nostro caso, eseguiremo un container indipendente come proxy inverso 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

Ci aiuterà a reindirizzare tutto il traffico HTTP predefinito su HTTPS quando integri i tuoi certificati. Dovresti notare il volume mappato per integrare i tuoi certificati che è /etc/nginx/certs

Ora apri le porte 80 e 443 sul firewall:

$ sudo ufw allow 80,443/tcp

Inoltre, assicurati di aprire ssh prima di abilitare UFW se non ancora

$ sudo ufw allow 'OpenSSH'

Ora abilita UFW se non ancora

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

Passaggio 3:esegui la finestra mobile MySQL

Gitea ha bisogno di un database per salvare i suoi dati. Gitea supporta MySQL/MariaDB, PostgreSQL, SQLite e MSSQL. Qui eseguiremo un contenitore MySQL per conservare tutti i dati.

$ 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

Possiamo verificare se il nostro container è in esecuzione

$ 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 per impostazione predefinita ascolta le connessioni sulla porta 3000 e il proxy reverser sulle porte HTTP e HTTPS. Se hai un firewall assicurati che le porte siano aperte per accedere all'interfaccia web di Gitea.

Diamo un'occhiata ad alcuni dettagli del nostro contenitore MySQL come l'indirizzo IP perché ne avremo bisogno in seguito

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

Ora connettiamoci al contenitore MySQL

$ docker container exec -it mysql-gitea bash

Quindi accedi alla riga di comando di MySQL

# mysql -u root -po$su876HG@zvsRt3BT

Ora crea il database e l'utente per 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;

Ora esci anche dal container

# exit;

Fase 4:Configura il certificato SSL

Per poter accedere alla tua Gitea tramite un nome di dominio sicuro, dovrai copiare il certificato SSL nella cartella Nginx. Puoi utilizzare il certificato Let's Encrypt gratuito o il certificato di un'autorità di certificazione.

Copia il certificato

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

Copia la chiave

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

Fase 5:esegui la finestra mobile Gitea

Per eseguire Gitea, dobbiamo indicare alcune informazioni sul container MySQL che è stato lanciato in precedenza come:

  • Il tipo di database che è mysql
  • l'indirizzo ip del contenitore mysql
  • il nome del database
  • il nome utente del database
  • la password dell'utente del database
  • la porta utilizzata da 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

Possiamo verificare se è in esecuzione

$ 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

Ora puoi provare ad accedere a Gitea utilizzando l'URL https://giteadomain.com

Ora vai su "Accedi" per continuare il processo di installazione. Puoi personalizzare alcune informazioni come il titolo del sito.

Assicurati di indicare il nome di dominio dove è necessario. Indicare anche le informazioni per l'account amministratore

Dopo l'installazione, accederai

Puoi creare un nuovo repository

Hai il primo repository

Conclusione

Ora conosci tutti i passaggi per installare Gitea usando Docker su Ubuntu 20.04, il tuo repository centrale privato per il tuo codice. Sarai in grado di gestirlo a seconda delle tue esigenze.


Ubuntu
  1. Come installare Docker su Ubuntu 18.04

  2. Come installare Kubernetes su Ubuntu 18.04

  3. Come installare Docker su Ubuntu 16.04

  4. Come installare Docker su Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  5. Come installare Docker su Ubuntu 18.04?

Come installare Maven su Ubuntu 18.04

Come installare il servizio Git self-hosted Gitea utilizzando Docker su Ubuntu 18.04

Come installare Docker su Ubuntu 20.04, 18.04, 21.04

Come installare Docker su Ubuntu 14.04

Come installare Gitea su Ubuntu usando Docker

Come installare Docker su Ubuntu 18.04