Requisitos:
Para seguir este artigo, você deve ter o Docker instalado no seu computador. Linuxhint tem muitos artigos que você pode seguir para instalar o docker na distribuição Linux desejada, se você ainda não o instalou. Então, verifique o Linuxhint.com o caso de você estar tendo problemas para instalar o docker.
Instalando o docker compor:
Você pode fazer o download do docker compor o arquivo binário com muita facilidade com o seguinte comando:
$ sudo curl -l "https: // github.com/docker/compor/liberações/download/1.24.1//
Docker-Compose-$ (uname -s)-$ (uname -m) "-o/usr/local/bin/Docker-Comppose
OBSERVAÇÃO: ondulação não pode ser instalado em sua distribuição Linux. Se for esse o caso, você pode instalar o CURL com o seguinte comando:
Ubuntu/Debian/Linux Mint:
$ sudo apt install curl -y
CENTOS/RHEL/FEDORA:
$ sudo dnf install curl -y
Uma vez Docker-Compose O arquivo binário é baixado, execute o seguinte comando:
$ sudo chmod +x/usr/local/bin/docker-comp
Agora, verifique se Docker-Compose O comando está funcionando da seguinte maneira:
Versão $ Docker-Compose
Ele deve imprimir as informações da versão, conforme mostrado na captura de tela abaixo.
Configurando o Docker compor para o projeto:
Agora, crie um diretório de projeto ~/Docker/GitServer (digamos) e um reposs/ e etc/ Diretório dentro do diretório do projeto para manter os repositórios Git e alguns arquivos de configuração.
$ mkdir -p ~/docker/gitserver/repos, etc
Agora, navegue até o diretório do projeto ~/Docker/GitServer do seguinte modo:
$ CD ~/Docker/GitServer
É assim que a árvore do projeto deve ser. Aqui, eu tenho 2 arquivos, git.conf e Git-Create-Repo.sh no etc/ diretório. Um vazio reposs/ Diretório para manter todos os repositórios Git. A GitServer.Dockerfile para a construção de um contêiner Git HTTP Server Docker personalizado e um Docker-Compose.Yaml arquivo.
O conteúdo do GitServer.Dockerfile:
De Ubuntu: 18.04
Execute APT Atualize 2>/dev/null
Execute o apt install -y git apache2 apache2 -utils 2>/dev/null
Executar a reescrita A2EnMod Env CGI
Execute mkdir/var/www/git
Run Chown -RFV www-data: www-data/var/www/git
CÓPIA DE ./etc/git.Conf/etc/apache2/sites-disponível/git.conf
CÓPIA DE ./etc/git-create-repo.sh/usr/bin/mkrepo
Execute chmod +x/usr/bin/mkrepo
Execute a2dissite 000-Default.conf
Execute o Git A2ensite.conf
Run Git Config -System HTTP.RECEPTPACK TRUE
Run Git Config -System HTTP.UPLOPLEPACK TRUE
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 em primeiro plano
Exponha 80/TCP
O conteúdo de etc/git.conf Arquivo de configuração do 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
Opções +Execcgi -Multiviews +Symlinksifowowsatch
Allowoverride nenhum
Exigir tudo concedido
Documentroot/var/www/html
Índices de opções seguem os links multiviews
Allowoverride nenhum
Exigir tudo concedido
ErrorLog $ apache_log_dir/erro.registro
Loglevel Warn
CustomLog $ apache_log_dir/acesso.log combinado
O conteúdo do etc/git-create-repo.sh Script de 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
toque no git-daemon-export-ok
Ganchos CP/pós-atualização.ganchos de amostra/pós-atualização
Git Update-Server-Info
CHOWN -RF WWW-DATA: www-data "$ git_dir/$ repo_name.git "
Echo "Git Repository '$ repo_name' criado em $ git_dir/$ repo_name.git "
Finalmente, o conteúdo do Docker-Compose.Yaml arquivo:
Versão: "3.7 "
Serviços:
Git-Server:
construir:
Dockerfile: GitServer.Dockerfile
contexto: .
Reinicie: sempre
Portas:
- "8080: 80"
volumes:
- ./repos:/var/www/git
Construindo Git HTTP Server Docker Imagem:
Agora, para construir a imagem do Docker do servidor HTTP Git, execute o seguinte comando:
$ Docker-Compõe Build
Pode demorar um pouco para construir uma imagem personalizada do Docker.
Neste ponto, a imagem do docker deve ser construída.
Sempre que você faz alterações em qualquer um dos GitServer.Dockerfile, etc/git.conf, etc/git-create-repo.sh arquivo, você deve reconstruir a imagem do docker usando Build do Docker-Compose comando.
Iniciando o servidor http git:
Agora, para começar o Git-Server Serviço, execute o seguinte comando:
$ Docker -Compõe Up -d
O Git-Server O serviço deve começar em segundo plano.
Para ver como as portas são mapeadas, execute o seguinte comando:
$ Docker-Compor PS
Como você pode ver, para o Git-Server Serviço, a porta host do docker 8080 é mapeado para a porta TCP do contêiner 80.
Criando um novo repositório Git no servidor:
Para criar um novo repositório Git teste (Digamos) No contêiner Git HTTP Server, execute o seguinte comando:
$ Docker-Compompose Exec Git-Server Mkrepo Teste
Um novo repositório Git teste deve ser criado.
Encontrando o endereço IP do host do Docker:
Se você deseja acessar o servidor Git HTTP de outros computadores em sua rede, você deve saber o endereço IP do seu host do Docker.
Para encontrar o endereço IP do seu host do Docker, execute o seguinte comando:
$ ip
No meu caso, o endereço IP do meu host do Docker 192.168.20.160. Vai ser diferente para você. Então, certifique -se de substituí -lo por seu a partir de agora.
Acessando repositórios Git do servidor:
Você pode acessar os repositórios Git no servidor usando o URL http: //: 8080/.git
Aqui,
é o endereço IP do seu host do Docker.
é o nome do repositório Git no servidor Git HTTP.
Então, no meu caso, para o teste Repositório, o URL deve ser http: // 192.168.20.160: 8080/teste.git
Agora, você pode clonar o repositório Git de teste do servidor da seguinte forma:
Clone $ Git http: // 192.168.20.160: 8080/teste.git
Como você pode ver, o repositório é clonado com sucesso. Mas atualmente está vazio.
Um novo diretório teste/ deve ser criado.
$ ls
Navegue até o teste/ diretório.
$ cd teste/
Agora, faça algumas mudanças e cometê -lo.
$ Echo "Welcome to Git-Server"> Mensagem.TXT
$ git add -a
$ git commit -m 'Commits inicial'
$ git log --oneeline
Agora, empurre as alterações no servidor da seguinte forma:
$ Git Push Origin Master
Como você pode ver, os compromissos são enviados para o servidor HTTP Git com sucesso.
Agora, outra pessoa também pode clonar o repositório do Git de teste.
Clone $ Git http: // 192.168.20.160: 8080/teste.git
Navegue até o teste/ diretório.
$ cd teste/
E encontre as mudanças lá.
Parando o servidor HTTP Git:
Para parar o Git-Server Serviço, execute o seguinte comando:
$ docker-compor para baixo
O Git-Server O serviço deve ser parado.
Então, é assim que você configura um servidor HTTP Git usando o Docker. Obrigado por ler este artigo.