Pacote para gerar containers rápidos

Installs: 60

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 1

Forks: 4

Open Issues: 0

Language:Shell

v2.0.0 2024-12-27 23:47 UTC

This package is auto-updated.

Last update: 2025-03-15 15:06:41 UTC


README

Requisitos obrigatórios:

  • Docker

Instalando Scoob globalmente:

cd ~/ && git clone https://github.com/Shieldforce/scoob.git && cd scoob

Criando alias para rodar o scoob em qualquer projeto:

echo "alias scoob='bash $(pwd)/scoob'" >> ~/.bashrc; source ~/.bashrc

Instalando Scoob localmente:

composer require shieldforce/scoob

Comando para rodar local:

bash ./vendor/shieldforce/scoob/scoob {comandos scoob}

Exemplo (Vai criar um container com php8.3 na porta 9000):

bash ./vendor/shieldforce/scoob/scoob --type docker-php-nginx --version 8.3 --port 9000

Tipos de implementação:

Remover totalmente um container:

scoob --type docker-remove {container-name}

Implementar um container PHP Puro:

scoob --type docker-php-nginx {parametros obrigatórios}

Implementar um container Laravel:

scoob --type docker-laravel {parametros obrigatórios}

Limpar tudo que não está sendo usado no docker (CUIDADO, IRÁ EXCLUIR TUDO QUE NÃO ESTÁ SENDO USADO!):

scoob --docker-prune

Exemplos de container para php/nginx e laravel:

  • --type (obrigatório) : Tipo do container para php sempre será (docker-php-nginx)
  • --version (obrigatório) : Versão do PHP Versões disponíveis (7.3, 7.4, 8.1, 8.2, 8.3,84)
  • --port (obrigatório) : Porta de Exposição do container
  • --redis-port (opcional) : Seta porta do redis!
  • --mysql-port (opcional) : Seta porta do mysql!

Este comando vai instalar um container com php/nginx.

scoob --type docker-php-nginx --version 8.4 --port 8084

Listar containers Exemplo: --type + --port [php-fpm-8.4-8084] :

docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                       NAMES
f6d5sf6f56f5   php-fpm-8.4-8084   "docker-php-entrypoi…"   1 minutes ago   Up 1 minutes   8073/tcp, 9000/tcp, 0.0.0.0:8084->80/tcp, :::8084->80/tcp   php-fpm-8.4-8084

Este comando vai instalar um container com laravel/mysql/redis/supervisor.

scoob --type docker-laravel --version 8.4 --port 8094 --redis-port 6394 --mysql-port 3394

Supervisor (No caso de containers: --type docker-laravel)

Acessar bash do container:

docker exec -it {container-name} bash

Listar serviços pendurados no supervisor:

docker exec -it {container-name} supervisorctl status

A saída tem que ser parecdia com isso:
horizon                          RUNNING   pid 61, uptime 0:00:44
mariadb                          RUNNING   pid 62, uptime 0:00:44
nginx                            RUNNING   pid 63, uptime 0:00:44
php-fpm                          RUNNING   pid 64, uptime 0:00:44
redis                            RUNNING   pid 65, uptime 0:00:44

Resetar serviços pendurados no supervisor:

docker exec -it {container-name} supervisorctl restart all

Cada serviço está explicado a baixo caso falhar!

Acessar redis do container:

Se não passou porta, ela será no caso de

  • php7.3: 6373
  • php7.4: 6374
  • php8.1: 6381
  • php8.2: 6382
  • php8.3: 6383
  • php8.4: 6384 Se passou --redis-port será o valor passado:
docker exec -it {container-name} redis-cli -p {port}

Env Redis:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT={porta_configurada}

Se precisar colocar senha no redis só passar o parâmetro no arquivo de configuração do redis:

/etc/redis/redis.conf

requirepass myStrongPassword123!

Acessar mysql do container:

Se não passou porta, ela será no caso de

  • php7.3: 3373
  • php7.4: 3374
  • php8.1: 3381
  • php8.2: 3382
  • php8.3: 3383
  • php8.4: 3384 Se passou --mysql-port será o valor passado:
docker exec -it {container-name} mysql
MariaDB [(none)]> create database {db_name};
O resultado tem que ser: (Query OK, 1 row affected (0.000 sec))

Acesso root:

docker exec -it {container-name} mysql
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '{senha_desejada}' WITH GRANT OPTION;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%.%.%.%' IDENTIFIED BY 'senha_desejada' WITH GRANT OPTION;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'0.0.0.0' IDENTIFIED BY 'senha_desejada' WITH GRANT OPTION;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'senha_desejada' WITH GRANT OPTION;
MariaDB [(none)]> FLUSH PRIVILEGES;

Env Mysql:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT={porta que configurou}
DB_DATABASE={db_name}
DB_USERNAME=root
DB_PASSWORD={senha_desejada}

Rodar Migrate (Se pedir para criar banco cujo o nome está na variável DB_DATABASE, aceite):

docker exec -it {container-name} php artisan migrate

Rodar Horizon (Se não estiver instalado rode o primeiro comando):

docker exec -it {container-name} composer require laravel/horizon
docker exec -it {container-name} php artisan horizon:install