GNU/Linux >> Linux Esercitazione >  >> Ubuntu

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

Gitea è un fork di Gogs, il servizio Git self-hosted facile da usare. È simile a GitHub, Bitbucket e Gitlab. Gitea è una soluzione di hosting di codice leggera scritta in Go, può essere eseguita con requisiti hardware minimi. È un'applicazione multipiattaforma, può essere eseguita ovunque Go può essere compilato come Windows, Linux, MacOS, ARM ecc.

In questo tutorial, ti mostrerò passo dopo passo come installare e configurare il servizio Git leggero utilizzando Gitea. Distribuiremo il server Gitea utilizzando Docker e utilizzeremo il database PostgreSQL e il proxy inverso Traefik. Per questa guida, utilizzeremo l'ultimo server Ubuntu 18.04.

Prerequisiti

  • Ubuntu 18.04
  • Privilegi di root

Cosa faremo?

  1. Installa Docker-CE
  2. Installa Docker Compose
  3. Distribuisci Gitea come container utilizzando Docker
  4. Dopo l'installazione di Gitea
  5. Crea il primo repository
  6. Testing First Commit

Passaggio 1:installazione di Docker-CE

Il primo passo che faremo per questa guida è installare l'edizione della community Docker sul server Ubuntu 18.04. Installeremo il pacchetto Docker CE dal repository Docker ufficiale.

Aggiungi il repository Docker e Docker eseguendo i comandi seguenti.

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"

Il comando 'add-apt-repository' aggiornerà automaticamente il repository.

Ora installa il pacchetto Docker CE.

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

Al termine dell'installazione, avvia il servizio Docker e abilitalo all'avvio ogni volta all'avvio del sistema.

sudo systemctl start docker
sudo systemctl enable docker

Docker CE è attivo e funzionante sul server Ubuntu 18.04. Verifica l'installazione controllando la versione della finestra mobile.

docker version

oppure esegui la finestra mobile 'hello-world'.

docker run hello-world

Passaggio 2:installazione di Docker Compose

Docker-Compose è uno strumento a riga di comando per la definizione e la gestione di applicazioni docker multi-container. Ti consente di creare un container come servizio, ottimo per il tuo ambiente di sviluppo, test e staging.

Installa Docker Compose scaricando il file binario e rendilo eseguibile.

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

Ora controlla il comando docker-compose.

docker-compose version

Docker Compose è ora installato.

Passaggio 3 - Distribuisci Gitea come Docker Container

In questo passaggio, creeremo un nuovo script di composizione mobile che contiene tutta la configurazione dei servizi, inclusi il database PostgreSQL e il proxy inverso di Traefik. Imposteremo tutti i file di distribuzione nella directory denominata 'deployment'.

Crea rete Docker personalizzata

Prima di creare la configurazione di distribuzione, creiamo una nuova rete bridge personalizzata. Verrà utilizzato per il proxy inverso traefik del servizio esterno.

Controlla la rete della finestra mobile dell'elenco.

docker network ls

Ora crea una nuova rete bridge personalizzata denominata 'hakasenet'.

docker network create hakasenet

Controllalo di nuovo.

docker network ls

Ora otterrai la rete 'hakasenet' nell'elenco.

Imposta file e directory di distribuzione

Crea una nuova directory denominata 'deployment' e lo script 'docker-compose.yml' su di essa.

mkdir deployment; cd deployment
touch docker-compose.yml

Ora crea la nuova directory 'gitea' e il volume di dati 'postgres'.

mkdir -p gitea/ postgres/

Crea un nuovo file "acme.json" e modifica l'autorizzazione del file. verrà utilizzato per memorizzare i dati Letsencrypt.

touch acme.json
chmod 600 acme.json

Ora crea il file di configurazione globale di traefik 'traefik.toml'.

touch traefik.toml

E di seguito sono riportati i file e le directory che abbiamo per l'installazione di Gitea utilizzando Docker.

tree

Impostazione del servizio PostgreSQL

Il servizio di database PostgreSQL è il primo servizio che vogliamo configurare. Il servizio database verrà eseguito solo sulla rete Docker interna.

E useremo l'immagine Postgres 9.6, usando "gitea" come nome del database, utente e password e imposteremo il volume dei dati di Postgres.

Modifica il file 'docker-compose.yml' usando vim.

vim docker-compose.yml

Incolla le configurazioni di seguito.

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

Salva ed esci.

Impostazione proxy inverso Traefik

Ora configureremo il proxy inverso di Traefik per la nostra installazione di Gitea.

Il servizio traefik verrà eseguito su porte predefinite HTTP e HTTPS, sulla rete bridge personalizzata denominata 'hakasenet', e lo configureremo per utilizzare i certificati Letsencrypt che saranno definiti nel file 'traefik.toml'.

Modifica lo script di composizione.

vim docker-compose.yml

Incolla le configurazioni nella configurazione del servizio 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

Salva ed esci.

Ora modifica il file di configurazione 'traefik.toml'.

vim traefik.toml

E incolla la seguente configurazione.

#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"

Salva ed esci.

Nota:

  • Cambia l'e-mail acme letencrypt con il tuo indirizzo e-mail valido.

Configura il servizio Gitea

Modifica il file di configurazione 'docker-compose.yml'.

vim docker-compose.yml

Incolla la configurazione del servizio gitea in fondo alla riga.

  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

Salva ed esci.

Il servizio Gitea verrà eseguito sulla porta TCP '3000', utilizzando queste due reti docker 'internal' e 'hakasenet', e verrà eseguito sotto il proxy inverso traefik sul dominio 'git.hakase-labs.io'.

Docker compone la configurazione per l'implementazione di Gitea completata.

Distribuisci tutti i servizi

Ora distribuisci lo stack usando il comando 'docker-compose' di seguito.

docker-compose up -d

Il comando scaricherà tutte le immagini della finestra mobile necessarie ed eseguirà i servizi definiti nello script di composizione della finestra mobile.

E quando è completo, controlla i servizi disponibili sulla finestra mobile usando l'opzione ps come di seguito.

docker-compose ps

Ora otterrai il risultato come di seguito.

Il database PostgreSQL, Gitea e i container proxy inverso traefik sono ora attivi e funzionanti. Il servizio di database è in esecuzione sulla porta predefinita "5432", il server gitea è in esecuzione sulla porta "3000" e il proxy traefik è in esecuzione su porte HTTP e HTTPS, accessibili dalla rete esterna/da Internet.

Se vuoi controllare tutti i log dal controllo Docker, esegui il comando seguente.

docker-compose logs

Fase 4 - Post-installazione di Gitea

Apri il tuo browser web e digita l'URL di installazione di Gitea. Il mio è:

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

Ora otterrai la pagina Gitea predefinita.

Aggiungi il percorso di installazione all'URL.

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

Ora otterrai la pagina di installazione di Gitea.

Configurazione database

Digita i dettagli del database PostgreSQL e usa 'db ' come host.

Configurazione generale di Gitea

Modifica il "Titolo del sito" con il tuo titolo, il "Dominio del server SSH" (senza https) e "Gitea Base URL" con l'URL del tuo server gitea.

Impostazioni account amministratore

Nelle impostazioni dell'amministratore, digita il nome utente, la password e l'indirizzo e-mail dell'amministratore.

Ora fai clic sul pulsante "Installa Gitea".

E verrai reindirizzato alla dashboard utente predefinita di Gitea.

Fase 5:crea il primo repository in Gitea

Nella home page dell'utente, fai clic su '+' pulsante.

Ora digita i dettagli del repository che desideri creare.

e fai clic sul pulsante "Crea repository".

Il repository è stato creato.

Fase 6 - Testare il primo commit

Torna alla shell del terminale e imposta l'utente git e l'e-mail predefiniti.

Esegui i comandi git di seguito.

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

Ora clona il repository.

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

Vai alla directory del repository 'myyrepo' e modifica il file README.md.

cd myrepo/
vim README.md

apportare modifiche al file README, quindi salvare ed uscire.

Ora salva il repository.

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

E invialo al server.

git push origin master

Digita il tuo nome utente e password.

E il seguente dovrebbe essere il risultato.

Controlla la pagina del repository e assicurati di ottenere le modifiche come di seguito.

L'installazione di Gitea con Docker su Ubuntu 18.04 è stata completata con successo.


Ubuntu
  1. Come installare Docker su Ubuntu 18.04

  2. Come installare Git su Ubuntu 18.04 / 20.04

  3. Come installare Kubernetes su Ubuntu 18.04

  4. Come installare Docker Compose su Ubuntu 18.04

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

Come installare Docker su Ubuntu 20.04, 18.04, 21.04

Come installare Docker su Ubuntu 14.04

Come installare Git su Ubuntu 15.04

Come installare Git su Ubuntu 16.04

Come installare Gitea su Ubuntu usando Docker

Come installare Gitea su Ubuntu 22.04