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 -yCentOS/RHEL/Fedora:
$ sudo dnf install curl -ySekali 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 pelabuhanItu 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.04RUN 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/bashGIT_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 psSeperti 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:
$ ipDalam 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://
Sini,
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.