Докер

Настройте Git HTTP сървър на Docker

Настройте Git HTTP сървър на Docker
Git HTTP сървърът е много полезен за хора, които искат да работят и да си сътрудничат по проекти частно. В тази статия ще ви покажа как да настроите HTTP достъпен Git сървър, използвайки Docker Compose.  И така, нека започнем.

Изисквания:

За да следвате тази статия, трябва да имате инсталиран Docker на вашия компютър. LinuxHint има много статии, които можете да следвате, за да инсталирате Docker в желаната от вас дистрибуция на Linux, ако вече не сте го инсталирали. Така че, не забравяйте да проверите LinuxHint.com, в случай че имате проблеми с инсталирането на Docker.

Инсталиране на Docker Compose:

Можете да изтеглите двоичен файл на Docker Compose много лесно със следната команда:

$ 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

ЗАБЕЛЕЖКА: къдрица може да не се инсталира на вашата Linux дистрибуция. Ако случаят е такъв, можете да инсталирате curl със следната команда:

Ubuntu / Debian / Linux Mint:

$ sudo apt install curl -y

CentOS / RHEL / Fedora:

$ sudo dnf инсталира curl -y

Веднъж docker-compose двоичен файл е изтеглен, изпълнете следната команда:

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

Сега проверете дали docker-compose команда работи по следния начин:

$ docker-compose версия

Той трябва да отпечата информацията за версията, както е показано на екранната снимка по-долу.

Настройване на Docker Compose за проекта:

Сега създайте директория на проекта ~ / docker / gitserver (да речем) и a репо сделки / и и т.н. / директория в директорията на проекта за съхранение на git хранилища и някои конфигурационни файлове.

$ mkdir -p ~ / docker / gitserver / репозитори и т.н.

Сега отидете в директорията на проекта ~ / docker / gitserver както следва:

$ cd ~ / docker / gitserver

Ето как трябва да изглежда дървото на проекта. Тук имам 2 файла, git.конф и git-create-repo.ш в и т.н. / директория. Празна репо сделки / директория за съхранение на всички Git хранилища. A gitserver.Докер файл за изграждане на персонализиран Git HTTP сървър Docker контейнер и a docker-compose.ямъл файл.

Съдържанието на gitserver.Докер файл:

ОТ ubuntu: 18.04
RUN apt актуализация 2> / dev / null
RUN apt install -y git apache2 apache2-utils 2> / dev / null
RUN a2enmod env cgi alias rewrite
РАБОТА mkdir / var / www / git
RUN chown -Rfv www-data: www-data / var / www / git
КОПИЕ ./ etc / git.conf / etc / apache2 / sites-available / git.конф
КОПИЕ ./ etc / git-create-repo.sh / usr / bin / mkrepo
РАБОТА chmod + x / usr / bin / mkrepo
RUN a2dissite 000-по подразбиране.конф
РАБОТА a2ensite git.конф
RUN git config --system http.getpack true
RUN git config --system http.uploadpack вярно
ENV APACHE_RUN_USER www-данни
ENV APACHE_RUN_GROUP www-данни
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 ПРЕДИШНО
ЕКСПОЗИЦИЯ 80 / tcp

Съдържанието на и т.н. / git.конф Конфигурационен файл на Apache:


ServerAdmin уеб администратор @ localhost
 
SetEnv GIT_PROJECT_ROOT / var / www / git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias ​​/ / usr / lib / git-core / git-http-backend /
 
Псевдоним / / var / www / git
 

Опции + ExecCGI -MultiViews + SymLinksIfOwnerMatch
AllowOverride Няма
Изискване на всички предоставени

 
DocumentRoot / var / www / html
 

Опции Индекси FollowSymLinks MultiViews
AllowOverride Няма
Изискване на всички предоставени

ErrorLog $ APACHE_LOG_DIR / грешка.дневник
LogLevel предупреждава
CustomLog $ APACHE_LOG_DIR / достъп.дневник комбиниран

Съдържанието на и т.н. / git-create-repo.ш Сценарий на черупката:

#!/ 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
докоснете git-daemon-export-ok
cp куки / след актуализация.примерни куки / след актуализация
git update-server-info
chown -Rf www-data: www-data "$ GIT_DIR / $ REPO_NAME.git "
echo "Git хранилище '$ REPO_NAME' създадено в $ GIT_DIR / $ REPO_NAME.git "

И накрая, съдържанието на docker-compose.ямъл файл:

версия: „3.7 "
услуги:
git-сървър:
изграждане:
dockerfile: gitserver.Докер файл
контекст: .
рестартиране: винаги
портове:
- "8080: 80"
обеми:
- ./ репозитори: / var / www / git

Изграждане на Git HTTP сървър Docker Изображение:

Сега, за да изградите образ на докер на Git HTTP Server, изпълнете следната команда:

$ docker-compose build

Изграждането на персонализирано изображение на Docker може да отнеме известно време.

В този момент образът на Docker трябва да бъде изграден.

Винаги, когато правите промени в някоя от gitserver.Докер файл, и т.н. / git.конф, и т.н. / git-create-repo.ш файл, трябва да възстановите образа на Docker с помощта на docker-compose build команда.

Стартиране на Git HTTP сървър:

Сега, за да започнете git-сървър услуга, изпълнете следната команда:

$ docker-compose up -d

The git-сървър услугата трябва да започне във фонов режим.

За да видите как се картографират портовете, изпълнете следната команда:

$ docker-compose ps

Както можете да видите, за git-сървър услуга, хост портът на Docker 8080 се съпоставя с TCP порта на контейнера 80.

Създаване на ново Git хранилище на сървъра:

За да създадете ново хранилище на Git тест (да кажем) в контейнера на Git HTTP сървър изпълнете следната команда:

$ docker-compose exec git-server mkrepo test

Ново хранилище на Git тест трябва да се създаде.

Намиране на IP адреса на Docker Host:

Ако искате да получите достъп до Git HTTP сървъра от други компютри във вашата мрежа, трябва да знаете IP адреса на вашия Docker хост.

За да намерите IP адреса на вашия хост на Docker, изпълнете следната команда:

$ ip

В моя случай IP адресът на моя хост Docker 192.168.20.160. За вас ще е различно. Така че, не забравяйте да го замените от сега нататък.

Достъп до Git хранилища от сървъра:

Можете да получите достъп до хранилищата на Git на сървъра, като използвате URL адреса http: //: 8080 /.git

Тук,

е IP адресът на вашия Docker Host.

е името на хранилището на Git в Git HTTP сървъра.

Така че, в моя случай, за тест хранилище, URL адресът трябва да бъде http: // 192.168.20.160: 8080 / тест.git

Сега можете да клонирате тестовото Git хранилище от сървъра, както следва:

$ git clone http: // 192.168.20.160: 8080 / тест.git

Както можете да видите, хранилището е клонирано успешно. Но в момента е празно.

Нова директория тест/ трябва да се създаде.

$ ls

Придвижете се до тест/ директория.

$ cd тест /

Сега направете някои промени и го ангажирайте.

$ echo "добре дошъл в git-server"> съобщение.текст
$ git add -A
$ git commit -m 'първоначален ангажимент'
$ git log --oneline

Сега натиснете промените на сървъра, както следва:

$ git push master master

Както можете да видите, комитите се изпращат успешно към Git HTTP сървъра.

Сега някой друг може да клонира и тестовото хранилище на Git.

$ git clone http: // 192.168.20.160: 8080 / тест.git

Придвижете се до тест/ директория.

$ cd тест /

И намерете промените там.

Спиране на Git HTTP сървъра:

За да спрете git-сървър услуга, изпълнете следната команда:

$ docker-compose down

The git-сървър услугата трябва да бъде спряна.

И така, вие настройвате Git HTTP сървър с помощта на Docker. Благодаря, че прочетохте тази статия.

Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...