Buruh pelabuhan

Siapkan Server HTTP Git di Docker

Siapkan Server HTTP Git di Docker
Server HTTP Git sangat berguna bagi orang yang ingin bekerja dan berkolaborasi dalam proyek secara pribadi. Pada artikel ini, saya akan menunjukkan kepada Anda cara mengatur server Git yang dapat diakses HTTP menggunakan Docker Compose.  Jadi, mari kita mulai.

Persyaratan:

Untuk mengikuti artikel ini, Anda harus menginstal Docker di komputer Anda. LinuxHint memiliki banyak artikel yang dapat Anda ikuti untuk menginstal Docker pada distribusi Linux yang Anda inginkan jika Anda belum menginstalnya. Jadi, pastikan untuk memeriksa LinuxHint.com jika Anda mengalami masalah saat menginstal Docker.

Menginstal Komposisi Docker:

Anda dapat mengunduh file biner Docker Compose dengan sangat mudah dengan perintah berikut:

$ 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

CATATAN: keriting mungkin tidak diinstal pada distribusi Linux Anda. Jika demikian, Anda dapat menginstal curl dengan perintah berikut:

Ubuntu/Debian/Linux Mint:

$ sudo apt install curl -y

CentOS/RHEL/Fedora:

$ sudo dnf install curl -y

Sekali docker-compose file biner diunduh, jalankan perintah berikut:

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

Sekarang, periksa apakah docker-compose perintah bekerja sebagai berikut:

$ versi penulisan buruh pelabuhan

Itu harus mencetak informasi versi seperti yang ditunjukkan pada tangkapan layar di bawah ini.

Menyiapkan Penulisan Docker untuk Proyek:

Sekarang, buat direktori proyek ~/docker/gitserver (katakanlah) dan a repo/ dan dll/ direktori di dalam direktori proyek untuk menyimpan repositori git dan beberapa file konfigurasi.

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

Sekarang, navigasikan ke direktori proyek ~/docker/gitserver sebagai berikut:

$cd ~/docker/gitserver

Beginilah seharusnya pohon proyek terlihat. Di sini, saya punya 2 file, git.konf dan git-create-repo.SH dalam dll/ direktori. Sebuah kosong repo/ direktori untuk menyimpan semua repositori Git. SEBUAH gitserver.file docker untuk membangun wadah Docker server HTTP Git kustom dan a docker-compose.yaml mengajukan.

Isi dari gitserver.file docker:

DARI ubuntu:18.04
RUN apt update 2>/dev/null
JALANKAN apt install -y git Apache2 Apache2-utils 2>/dev/null
RUN a2enmod env cgi alias menulis ulang
JALANKAN mkdir /var/www/git
RUN chown -Rfv www-data:www-data /var/www/git
SALINAN ./etc/git.conf /etc/Apache2/sites-available/git.konf
SALINAN ./etc/git-create-repo.sh /usr/bin/mkrepo
JALANKAN chmod +x /usr/bin/mkrepo
JALANKAN a2dissite 000-default.konf
JALANKAN a2ensite git.konf
JALANKAN git config --system http.paket terima benar
JALANKAN git config --system http.uploadpack benar
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 FOREGROUND
EXPOSE 80/tcp

Isi dari dll/git.konf File konfigurasi Apache:


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

Opsi +ExecCGI -MultiViews +SymLinksIfOwnerMatch
AllowOverride Tidak Ada
Membutuhkan semua diberikan

 
DocumentRoot /var/www/html
 

Pilihan Indeks FollowSymLinks MultiViews
AllowOverride Tidak Ada
Membutuhkan semua diberikan

ErrorLog $APACHE_LOG_DIR/error.catatan
Peringatan Level Log
CustomLog $APACHE_LOG_DIR/akses.log gabungan

Isi dari etc/git-create-repo.SH Skrip cangkang:

#!/bin/bash
 
GIT_DIR="/var/www/git"
REPO_NAME=$1
 
mkdir -p "$GIT_DIR/$REPO_NAME.git"
cd "$GIT_DIR/$REPO_NAME.git"
 
git init --bare &> /dev/null
sentuh git-daemon-export-ok
kait cp/pasca-pembaruan.contoh kait/pasca-pembaruan
git update-server-info
chown -Rf www-data:www-data "$GIT_DIR/$REPO_NAME.git"
echo "Repositori Git '$REPO_NAME' dibuat di $GIT_DIR/$REPO_NAME.git"

Akhirnya, isi dari docker-compose.yaml mengajukan:

versi: "3.7"
jasa:
git-server:
membangun:
file docker: gitserver.file docker
konteks: .
mulai ulang: selalu
port:
- "8080:80"
volume:
- ./repos:/var/www/git

Membangun Gambar Docker Server HTTP Git:

Sekarang, untuk membangun image buruh pelabuhan Git HTTP Server, jalankan perintah berikut:

$ build komposisi buruh pelabuhan

Mungkin perlu beberapa saat untuk membuat image Docker khusus.

Pada titik ini, gambar Docker harus dibangun.

Setiap kali Anda membuat perubahan pada salah satu dari gitserver.file docker, dll/git.konf, etc/git-create-repo.SH file, Anda harus membangun kembali gambar Docker menggunakan pembuatan docker-compose perintah.

Memulai Git HTTP Server:

Sekarang, untuk memulai git-server layanan, jalankan perintah berikut:

$ docker-compose up -d

Itu git-server layanan harus dimulai di latar belakang.

Untuk melihat bagaimana port dipetakan, jalankan perintah berikut:

$ docker-compose ps

Seperti yang Anda lihat, untuk git-server layanan, port host Docker 8080 dipetakan ke port TCP kontainer 80.

Membuat Repositori Git Baru di Server:

Untuk membuat repositori Git baru uji (katakanlah) pada wadah server HTTP Git, jalankan perintah berikut:

$ docker-compose exec git-server tes mkrepo

Repositori Git baru uji harus diciptakan.

Menemukan Alamat IP Host Docker:

Jika Anda ingin mengakses server HTTP Git dari komputer lain di jaringan Anda, Anda harus mengetahui alamat IP dari host Docker Anda.

Untuk menemukan alamat IP dari host Docker Anda, jalankan perintah berikut:

$ ip

Dalam kasus saya, alamat IP dari host Docker saya 192.168.20.160. Ini akan berbeda untukmu. Jadi, pastikan untuk menggantinya dengan milikmu mulai sekarang.

Mengakses Repositori Git dari Server:

Anda dapat mengakses repositori Git di server menggunakan URL http://:8080/.git

Sini,

adalah alamat IP dari Host Docker Anda.

adalah nama repositori Git di server HTTP Git.

Jadi, dalam kasus saya, untuk uji repositori, URL harus http://192.168.20.160:8080/tes.git

Sekarang, Anda dapat mengkloning repositori uji Git dari server sebagai berikut:

$ git klon http://192.168.20.160:8080/tes.git

Seperti yang Anda lihat, repositori berhasil dikloning. Tapi saat ini kosong.

Direktori baru uji/ harus diciptakan.

$ l

Navigasikan ke uji/ direktori.

$cd tes/

Sekarang, buat beberapa perubahan dan komit.

$ echo "selamat datang di git-server"> pesan.txt
$ git tambahkan -A
$ git commit -m 'komit awal'
$ git log --oneline

Sekarang, Dorong perubahan ke server sebagai berikut:

$ git push asal master origin

Seperti yang Anda lihat, komit berhasil dikirim ke server HTTP Git.

Sekarang, orang lain juga dapat mengkloning repositori pengujian Git.

$ git klon http://192.168.20.160:8080/tes.git

Navigasikan ke uji/ direktori.

$cd tes/

Dan temukan perubahannya di sana.

Menghentikan Server HTTP Git:

Untuk menghentikan git-server layanan, jalankan perintah berikut:

$ docker-compose down

Itu git-server layanan harus dihentikan.

Jadi, begitulah cara Anda mengatur server HTTP Git menggunakan Docker. Terima kasih telah membaca artikel ini.

Petakan ulang tombol mouse Anda secara berbeda untuk perangkat lunak yang berbeda dengan Kontrol Tombol X-Mouse
Mungkin Anda membutuhkan alat yang dapat membuat kontrol mouse Anda berubah dengan setiap aplikasi yang Anda gunakan. Jika demikian, Anda dapat mencob...
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...
Trackpad dan Mouse Pointer di Layar AppyMouse untuk Tablet Windows
Pengguna tablet sering melewatkan penunjuk mouse, terutama ketika mereka terbiasa menggunakan laptop. Layar sentuh Smartphone dan tablet hadir dengan ...