Docker

Configura un server HTTP Git su Docker

Configura un server HTTP Git su Docker
Il server Git HTTP è molto utile per le persone che vogliono lavorare e collaborare su progetti in privato. In questo articolo, ti mostrerò come configurare un server Git accessibile HTTP utilizzando Docker Compose.  Quindi iniziamo.

Requisiti:

Per seguire questo articolo, devi avere Docker installato sul tuo computer. LinuxHint ha molti articoli che puoi seguire per installare Docker sulla tua distribuzione Linux desiderata se non lo hai già installato. Quindi, assicurati di controllare LinuxHint.com in caso di problemi con l'installazione di Docker.

Installazione di Docker Compose:

Puoi scaricare il file binario Docker Compose molto facilmente con il seguente comando:

$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/
docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

NOTA: arricciare potrebbe non essere installato sulla tua distribuzione Linux. In tal caso, puoi installare curl con il seguente comando:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

CentOS/RHEL/Fedora:

$ sudo dnf install curl -y

Una volta docker-comporre file binario viene scaricato, eseguire il seguente comando:

$ sudo chmod +x /usr/local/bin/docker-compose

Ora, controlla se docker-comporre comando funziona come segue:

$ versione docker-compose

Dovrebbe stampare le informazioni sulla versione come mostrato nello screenshot qui sotto.

Configurazione di Docker Compose per il progetto:

Ora crea una directory di progetto ~/docker/gitserver (diciamo) e a repo/ e eccetera/ directory all'interno della directory del progetto per conservare i repository git e alcuni file di configurazione.

$ mkdir -p ~/docker/gitserver/repos,etc

Ora vai alla directory del progetto ~/docker/gitserver come segue:

$ cd ~/docker/gitserver

Ecco come dovrebbe essere l'albero del progetto. Ecco, ho 2 file, idiota.conf e git-create-repo.sh nel eccetera/ directory. Un vuoto repo/ directory per conservare tutti i repository Git. UN gitserver.Dockerfile per la creazione di un container Docker del server HTTP Git personalizzato e a docker-comporre.igname file.

Il contenuto del gitserver.Dockerfile:

DA ubuntu: 18.04
ESEGUI apt update 2>/dev/null
ESEGUI apt install -y git apache2 apache2-utils 2>/dev/null
ESEGUI a2enmod env cgi alias rewrite
ESEGUI mkdir /var/www/git
RUN chown -Rfv www-data:www-data /var/www/git
COPIA ./etc/git.conf /etc/apache2/sites-available/git.conf
COPIA ./etc/git-create-repo.sh /usr/bin/mkrepo
ESEGUI chmod +x /usr/bin/mkrepo
ESEGUI a2dissite 000-default.conf
ESEGUI a2ensite git.conf
ESEGUI git config --system http.ricezionepacchetto vero
ESEGUI git config --system http.uploadpack vero
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
CMD /usr/sbin/apache2ctl -D IN PRIMO PIANO
ESPOSI 80/tcp

Il contenuto di ecc/git.conf File di configurazione di Apache:


ServerAdmin webmaster@localhost
 
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/ /usr/lib/git-core/git-http-backend/
 
Alias ​​/ /var/www/git
 

Opzioni +ExecCGI -MultiViews +SymLinksIfOwnerMatch
ConsentiSovrascrivi Nessuno
Richiedi tutto concesso

 
DocumentRoot /var/www/html
 

Opzioni Indici FollowSymLinks MultiViews
ConsentiSovrascrivi Nessuno
Richiedi tutto concesso

ErrorLog $APACHE_LOG_DIR/error.log
Avvertimento livello log
CustomLog $APACHE_LOG_DIR/accesso.log combinato

Il contenuto del etc/git-create-repo.sh Script di shell:

#!/bin/bash
 
GIT_DIR="/var/www/git"
REPO_NAME=$1
 
mkdir -p "$GIT_DIR/$REPO_NAME.idiota"
cd "$GIT_DIR/$REPO_NAME.idiota"
 
git init --bare &> /dev/null
tocca git-daemon-export-ok
cp hook/post-aggiornamento.esempi di hook/post-aggiornamento
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.idiota"
echo "Repository Git '$REPO_NAME' creato in $GIT_DIR/$REPO_NAME.idiota"

Infine, il contenuto del docker-comporre.igname file:

versione: "3.7"
Servizi:
git-server:
costruire:
dockerfile: gitserver.Dockerfile
contesto: .
riavvia: sempre
porti:
- "8080:80"
volumi:
- ./repos:/var/www/git

Creazione dell'immagine Docker del server HTTP Git:

Ora, per creare l'immagine docker di Git HTTP Server, esegui il seguente comando:

$ docker-compose build

Potrebbe volerci un po' di tempo per creare un'immagine Docker personalizzata.

A questo punto, l'immagine Docker dovrebbe essere creata.

Ogni volta che apporti modifiche a uno qualsiasi dei gitserver.Dockerfile, ecc/git.conf, etc/git-create-repo.sh file, è necessario ricostruire l'immagine Docker utilizzando build docker-compose comando.

Avvio del server HTTP Git:

Ora, per iniziare il git-server servizio, eseguire il seguente comando:

$ docker-compose up -d

Il git-server il servizio dovrebbe avviarsi in background.

Per vedere come sono mappate le porte, eseguire il comando seguente:

$ docker-compose ps

Come puoi vedere, per il git-server servizio, la porta host Docker 8080 è mappato alla porta TCP del contenitore 80.

Creazione di un nuovo repository Git sul server:

Per creare un nuovo repository Git test (diciamo) sul contenitore del server Git HTTP, esegui il seguente comando:

$ docker-compose exec git-server mkrepo test

Un nuovo repository Git test dovrebbe essere creato.

Trovare l'indirizzo IP dell'host Docker:

Se desideri accedere al server Git HTTP da altri computer della tua rete, devi conoscere l'indirizzo IP del tuo host Docker.

Per trovare l'indirizzo IP del tuo host Docker, esegui il seguente comando:

$ ip

Nel mio caso, l'indirizzo IP del mio host Docker 192.168.20.160. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo d'ora in poi.

Accesso ai repository Git dal server:

Puoi accedere ai repository Git sul server usando l'URL http://:8080/.idiota

Qui,

è l'indirizzo IP del tuo host Docker.

è il nome del repository Git nel server HTTP Git.

Quindi, nel mio caso, per il test repository, l'URL dovrebbe essere http://192.168.20.160:8080/prova.idiota

Ora puoi clonare il repository Git di prova dal server come segue:

$ git clone http://192.168.20.160:8080/prova.idiota

Come puoi vedere, il repository è stato clonato con successo. Ma al momento è vuoto.

Una nuova directory test/ dovrebbe essere creato.

$ ls

Vai a test/ directory.

$ cd prova/

Ora, apporta alcune modifiche e confermalo.

$ echo "benvenuto su git-server" > messaggio.TXT
$ git add -A
$ git commit -m 'commit iniziale'
$ git log --oneline

Ora, invia le modifiche al server come segue:

$ git push origine master

Come puoi vedere, i commit vengono inviati con successo al server Git HTTP.

Ora anche qualcun altro può clonare il repository Git di prova.

$ git clone http://192.168.20.160:8080/prova.idiota

Vai a test/ directory.

$ cd prova/

E trova i cambiamenti lì.

Arresto del server HTTP Git:

Per fermare il git-server servizio, eseguire il seguente comando:

$ docker-componi giù

Il git-server il servizio dovrebbe essere interrotto.

Quindi, è così che configuri un server HTTP Git usando Docker. Grazie per aver letto questo articolo.

Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...