Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Usando Docker para criar um protótipo de aplicação Replica-Set com PHP.

Iniciar com Docker e MongoDB

Instalação de aplicativos necessários

  • Passo 1: Baixar e instalar o Docker, disponível em: https://www.docker.com/ (Instalar com WSL que é mais leve que o Hyper-V)


Configurando as imagens do Docker

docker pull php:8.2-apache
docker pull mongo:latest

Criando os containers Docker

  • Passo 1: Criar uma pasta de diretório para o projeto.
mkdir ~/projeto

  • Passo 2: Clonar esse repositório que contém o arquivo docker-compose.yml :
git clone https://github.com/Rafael-Rueda/Replica-Set-Prototype.git

  • Passo 3: Executar o comando para subir os containers no Docker.
docker-compose build --no-cache
docker-compose up -d
docker-compose exec mongo1 bash /scripts/init-replica.sh

Comandos para debug e verificar o andamento da aplicação

  • Verificar o Replica Set e todos os nós primários e secundários:
docker-compose exec mongo1 mongosh --eval "rs.status()"

  • Parar um nó específico do Replica Set:
docker-compose stop mongo1

  • Trocar o nó primário (forçar eleição de um novo líder):
docker-compose exec mongo1 mongosh --eval "rs.stepDown()"

Configuração manual

Configurar o banco de dados como Replica-Set, no container mongo1 MANUALMENTE (se necessário)

  • Passo 1: Acessar o primeiro container mongo
docker exec -it mongo1 mongosh

  • Passo 2: Inicializar um replica-set entre os containers
rs.initiate({
  _id: "rs0",
  members: [
    { _id: 0, host: "mongo1:27017" },
    { _id: 1, host: "mongo2:27017" },
    { _id: 2, host: "mongo3:27017" },
    { _id: 3, host: "mongo4:27017" }
  ]
})

  • Passo 3: Verificar se está corretamente configurado
rs.status()

  • OBS: Para sair do mongosh, CTRL + C ou exit no terminal.

Configurar o container da aplicação MANUALMENTE (Se necessário)

docker exec -it posts_app bash
apt update && apt install -y curl unzip && apt install nano
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer --version
pecl install mongodb

Conforme a documentação: https://www.php.net/manual/en/mongodb.installation.php

php --ini

Ver onde está localizado esse arquivo de configuração, e edita-lo com o nano:

;php.ini
extension=mongodb.so
service apache2 restart
php -m | grep mongodb
composer install

About

Este repositório contém o código-fonte e exemplos práticos para conectar uma aplicação PHP ao MongoDB, um banco de dados NoSQL orientado a documentos, utilizando Replica Set para alta disponibilidade e redundância.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages