Docker

Sediakan Pelayan HTTP Git di Docker

Sediakan Pelayan HTTP Git di Docker
Pelayan HTTP Git sangat berguna untuk orang yang ingin bekerja dan bekerjasama dalam projek secara peribadi. Dalam artikel ini, saya akan menunjukkan kepada anda cara menyediakan pelayan Git yang boleh diakses HTTP menggunakan Docker Compose.  Oleh itu, mari kita mulakan.

Keperluan:

Untuk mengikuti artikel ini, anda mesti memasang Docker di komputer anda. LinuxHint mempunyai banyak artikel yang boleh anda ikuti untuk memasang Docker pada edaran Linux yang anda inginkan jika anda belum memasangnya. Oleh itu, pastikan anda menyemak LinuxHint.sekiranya anda menghadapi masalah memasang Docker.

Memasang Docker Compose:

Anda boleh memuat turun fail binari Docker Compose dengan mudah dengan arahan berikut:

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

NOTA: kerinting mungkin tidak dipasang pada edaran Linux anda. Sekiranya demikian, anda boleh memasang curl dengan arahan berikut:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf memasang curl -y

Sekali dok-tulis fail binari dimuat turun, jalankan arahan berikut:

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

Sekarang, periksa sama ada dok-tulis arahan berfungsi seperti berikut:

versi $ docker-compose

Ia harus mencetak maklumat versi seperti yang ditunjukkan dalam tangkapan skrin di bawah.

Menyiapkan Docker Compose untuk Projek:

Sekarang, buat direktori projek ~ / docker / gitserver (katakanlah) dan a repos / dan dan lain-lain/ direktori di dalam direktori projek untuk menyimpan git repositori dan beberapa fail konfigurasi.

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

Sekarang, arahkan ke direktori projek ~ / docker / gitserver seperti berikut:

$ cd ~ / docker / gitserver

Beginilah rupa pokok projek. Di sini, saya mempunyai 2 fail, git.pengesahan dan git-buat-repo.sh di dalam dan lain-lain/ direktori. Yang kosong repos / direktori untuk menyimpan semua repositori Git. A penjaga gits.Dockerfile untuk membina bekas Docker pelayan HTTP Git dan a dok-tulis.keladi fail.

Kandungan dari penjaga gits.Dockerfile:

DARI ubuntu: 18.04
Jalankan apt kemas kini 2> / dev / null
RUN apt install -y git apache2 apache2-utils 2> / dev / null
JALANKAN a2enmod env cgi alias tulis semula
JALANKAN mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
SALINAN ./ dll / git.conf / etc / apache2 / laman web-tersedia / git.pengesahan
SALINAN ./ etc / git-create-repo.sh / usr / bin / mkrepo
JALANKAN chmod + x / usr / bin / mkrepo
JALANKAN a2dissite 000-default.pengesahan
JALANKAN git a2ensite.pengesahan
RUN git config - sistem http.beg terima benar
RUN git config - sistem http.muat naik benar
ENV APACHE_RUN_USER data www
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
PENDEDAHAN 80 / tcp

Kandungan dari dll / git.pengesahan Fail konfigurasi Apache:


Webmaster ServerAdmin @ localhost
 
TetapkanEnv GIT_PROJECT_ROOT / var / www / git
TetapkanEnv GIT_HTTP_EXPORT_ALL
SkripAlias ​​/ / usr / lib / git-core / git-http-backend /
 
Alias ​​/ / var / www / git
 

Pilihan + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Tiada
Wajib semua diberikan

 
DocumentRoot / var / www / html
 

Pilihan Indeks FollowSymLinks MultiViews
AllowOverride Tiada
Wajib semua diberikan

KesalahanLog $ APACHE_LOG_DIR / ralat.balak
LogLevel memberi amaran
CustomLog $ APACHE_LOG_DIR / akses.log digabungkan

Kandungan dari dll / git-create-repo.sh Skrip shell:

#!/ 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
cp hook / pasca kemas kini.contoh cangkuk / pasca kemas kini
git kemas kini-pelayan-maklumat
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
gema "Git repositori '$ REPO_NAME' dibuat dalam $ GIT_DIR / $ REPO_NAME.git "

Akhirnya, kandungan dok-tulis.keladi fail:

versi: "3.7 "
perkhidmatan:
pelayan git:
membina:
dockerfile: gitserver.Dockerfile
konteks: .
mulakan semula: selalu
pelabuhan:
- "8080: 80"
jilid:
- ./ repos: / var / www / git

Membina Gambar Docker Server HTTP Git:

Sekarang, untuk membina imej pelayan Git HTTP Server, jalankan arahan berikut:

binaan $ docker-compose

Mungkin memerlukan sedikit masa untuk membina gambar Docker tersuai.

Pada ketika ini, gambar Docker harus dibina.

Bila-bila masa anda membuat perubahan pada mana-mana penjaga gits.Dockerfile, dll / git.pengesahan, dll / git-create-repo.sh fail, anda mesti membina semula gambar Docker menggunakan binaan dok-komposit perintah.

Memulakan Pelayan HTTP Git:

Sekarang, untuk memulakan pelayan git perkhidmatan, jalankan arahan berikut:

$ docker-compose up -d

The pelayan git perkhidmatan harus bermula di latar belakang.

Untuk melihat bagaimana port dipetakan, jalankan arahan berikut:

$ docker-mengarang ps

Seperti yang anda lihat, untuk pelayan git perkhidmatan, port host Docker 8080 dipetakan ke port TCP kontena 80.

Membuat Repositori Git Baru di Pelayan:

Untuk membuat repositori Git baru ujian (katakanlah) pada bekas pelayan Git HTTP, jalankan arahan berikut:

$ mkrepo pelayan git-server exec docker-compose

Repositori Git baru ujian harus dibuat.

Mencari Alamat IP Docker Host:

Sekiranya anda ingin mengakses pelayan Git HTTP dari komputer lain di rangkaian anda, anda mesti mengetahui alamat IP host Docker anda.

Untuk mencari alamat IP host Docker anda, jalankan arahan berikut:

$ ip

Dalam kes saya, alamat IP hos Docker saya 192.168.20.160. Ia akan berbeza bagi anda. Oleh itu, pastikan untuk menggantinya dengan milik anda mulai sekarang.

Mengakses Git Repositori dari Pelayan:

Anda boleh mengakses repositori Git di pelayan menggunakan URL http: //: 8080 /.git

Di sini,

adalah alamat IP Host Docker anda.

adalah nama repositori Git di pelayan Git HTTP.

Jadi, dalam kes saya, untuk ujian repositori, URL harus http: // 192.168.20.160: 8080 / ujian.git

Sekarang, anda boleh mengklon repositori Git ujian dari pelayan seperti berikut:

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

Seperti yang anda lihat, repositori berjaya diklon. Tetapi sekarang kosong.

Direktori baru ujian / harus dibuat.

$ ls

Navigasi ke ujian / direktori.

$ cd ujian /

Sekarang, buat beberapa perubahan dan lakukan.

$ echo "selamat datang ke git-server"> mesej.txt
$ git tambah -A
$ git komit -m 'komit awal'
$ git log - talian

Sekarang, tekan perubahan ke pelayan seperti berikut:

$ git push origin master

Seperti yang anda lihat, komit dihantar ke pelayan HTTP Git dengan jayanya.

Sekarang, orang lain boleh mengklon repositori Git ujian juga.

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

Navigasi ke ujian / direktori.

$ cd ujian /

Dan cari perubahan di sana.

Menghentikan Pelayan HTTP Git:

Untuk menghentikan pelayan git perkhidmatan, jalankan arahan berikut:

$ docker-mengarang

The pelayan git perkhidmatan harus dihentikan.

Jadi, itulah cara anda menyediakan pelayan Git HTTP menggunakan Docker. Terima kasih kerana membaca artikel ini.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...