PHPackages                             shieldforce/scoob - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. shieldforce/scoob

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

shieldforce/scoob
=================

Pacote para gerar containers rápidos

v5.3.0(6mo ago)71073MITShell

Since Dec 27Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/Shieldforce/scoob)[ Packagist](https://packagist.org/packages/shieldforce/scoob)[ RSS](/packages/shieldforce-scoob/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (1)Versions (33)Used By (0)

Scoob
=====

[](#scoob)

Requisitos obrigatórios:
------------------------

[](#requisitos-obrigatórios)

- Docker

#### Atualizações de Segurança:

[](#atualizações-de-segurança)

- Atualização de segurança para containers em produção, Agora os containers das versões docker-php-nginx nas versões de php (8.2, 8.3 e 8.4), não executam o container como root, mas como um usuário local, com privilégios limitados, que impedirá escala de privilégios para o host.

---

#### Os containers habilitados para rodar em produção (rodam como usuário limitado):

[](#os-containers-habilitados-para-rodar-em-produção-rodam-como-usuário-limitado)

- scoob --type docker-php-nginx --version 8.2 --port {port}
- scoob --type docker-php-nginx --version 8.3 --port {port}
- scoob --type docker-php-nginx --version 8.4 --port {port}

#### Caso seu container não subir por algum motivo, tente rodar com sudo:

[](#caso-seu-container-não-subir-por-algum-motivo-tente-rodar-com-sudo)

```
sudo ~/scoob/scoob --type docker-php-nginx --version 8.2 --port {port}

```

---

Instalando Scoob globalmente:
-----------------------------

[](#instalando-scoob-globalmente)

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

```

### Crie esse alias no seu ~/.bashrc ou ~/.zshrc e rode os source ~/.bashrc ou ~/.zshrc

[](#crie-esse-alias-no-seu-bashrc-ou-zshrc-e-rode-os-source-bashrc-ou-zshrc)

```
alias scoob='bash $HOME/scoob/scoob'

```

### Criando alias para rodar o scoob em qualquer projeto:

[](#criando-alias-para-rodar-o-scoob-em-qualquer-projeto)

```
echo "alias scoob='bash $HOME/scoob/scoob'" >> ~/.zshrc; source ~/.zshrc

```

---

---

Rodando composer install e ignorando qualquer conflito de versão!:
------------------------------------------------------------------

[](#rodando-composer-install-e-ignorando-qualquer-conflito-de-versão)

```
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html composer/composer \
     composer install --ignore-platform-reqs

```

Instalando Scoob localmente:
----------------------------

[](#instalando-scoob-localmente)

```
docker run --rm \
    -u "$(id -u):$(id -g)" \
    -v "$(pwd):/var/www/html" \
    -w /var/www/html composer/composer \
     composer require shieldforce/scoob

```

### Comando para rodar local:

[](#comando-para-rodar-local)

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

```

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

[](#exemplo-vai-criar-um-container-com-php83-na-porta-9000)

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

```

---

---

### Rede que o scoob é criado scoob-network

[](#rede-que-o-scoob-é-criado-scoob-network)

### Use scoob ou 'bash ./vendor/shieldforce/scoob/scoob' vai depender de como vc instalou!:

[](#use-scoob-ou-bash-vendorshieldforcescoobscoob-vai-depender-de-como-vc-instalou)

### Com o scoob instalado global ou localmente vc pode usar o composer dele:

[](#com-o-scoob-instalado-global-ou-localmente-vc-pode-usar-o-composer-dele)

```
bash ./vendor/shieldforce/scoob/scoob --composer 'composer update' {container-name}

```

Tipos de implementação:
-----------------------

[](#tipos-de-implementação)

### Remover totalmente um container:

[](#remover-totalmente-um-container)

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

```

### Implementar um container PHP Puro:

[](#implementar-um-container-php-puro)

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

```

### Implementar um container Laravel:

[](#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!):

[](#limpar-tudo-que-não-está-sendo-usado-no-docker-cuidado-irá-excluir-tudo-que-não-está-sendo-usado)

```
scoob --docker-prune

```

---

### Roda um servidor mysql na rede scoob-network (se rodar: scoob --mysql-ext ele roda com os parâmetros defaults):

[](#roda-um-servidor-mysql-na-rede-scoob-network-se-rodar-scoob---mysql-ext-ele-roda-com-os-parâmetros-defaults)

### Usuário root tem todos os privilégios! E utiliza a mesma senha --pass='password'

[](#usuário-root-tem-todos-os-privilégios-e-utiliza-a-mesma-senha---passpassword)

#### Dados Default:

[](#dados-default)

- port: 3399
- user: scoob\_user
- pass: scoob\_pass
- db: scoob\_db
- container: scoob-mysql

```
scoob --mysql-ext=true \
    --port='port_number' \
    --user='user_name' \
    --pass='password' \
    --db='db_name' \
    --container='container-name'

```

---

---

### Roda um servidor redis na rede scoob-network (se rodar: scoob --redis-ext ele roda com os parâmetros defaults):

[](#roda-um-servidor-redis-na-rede-scoob-network-se-rodar-scoob---redis-ext-ele-roda-com-os-parâmetros-defaults)

#### Dados Default:

[](#dados-default-1)

- port: 6379
- pass: @ScoobRedis-dg333445fvcv
- container: scoob-redis

```
scoob --redis-ext=true \
    --container="scoob-redis" \
    --port="6379" \
    --pass="@ScoobRedis-dg333445fvcv"

```

---

Exemplos de container para php/nginx e laravel:
-----------------------------------------------

[](#exemplos-de-container-para-phpnginx-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, 8.4)
- --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\] :

[](#listar-containers-exemplo----type----port-php-fpm-84-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)
---------------------------------------------------------

[](#supervisor--no-caso-de-containers---type-docker-laravel)

### Acessar bash do container:

[](#acessar-bash-do-container)

```
docker exec -it {container-name} bash

```

### Listar serviços pendurados no supervisor:

[](#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:

[](#resetar-serviços-pendurados-no-supervisor)

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

```

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

[](#cada-serviço-está-explicado-a-baixo-caso-falhar)

---

### Acessar redis do container:

[](#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:

[](#se-passou---redis-port-será-o-valor-passado)

```
docker exec -it {container-name} redis-cli -p {port}

```

### Env Redis:

[](#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:

[](#se-precisar-colocar-senha-no-redis-só-passar-o-parâmetro-no-arquivo-de-configuração-do-redis)

### /etc/redis/redis.conf

[](#etcredisredisconf)

### requirepass myStrongPassword123!

[](#requirepass-mystrongpassword123)

---

### Acessar mysql do container:

[](#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:

[](#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:

[](#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:

[](#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):

[](#rodar-migrate-se-pedir-para-criar-banco-cujo-o-nome-está-na-variável-db_database-aceite)

```
docker exec -it --user $(id -u):$(id -g) {container-name} php artisan migrate

```

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

[](#rodar-horizon-se-não-estiver-instalado-rode-o-primeiro-comando)

```
docker exec -it --user $(id -u):$(id -g) {container-name} composer require laravel/horizon
docker exec -it --user $(id -u):$(id -g) {container-name} php artisan horizon:install

```

---

### Versões do PHP com suportes para drivers sqlsrv(Sql server):

[](#versões-do-php-com-suportes-para-drivers-sqlsrvsql-server)

- 8.2
- 8.3
- 8.4

### Suporte como cliente para Sql Servers:

[](#suporte-como-cliente-para-sql-servers)

- SQL Server 2012 (SP4+) ✅ Suportado
- SQL Server 2014 ✅ Suportado
- SQL Server 2016 ✅ Suportado
- SQL Server 2017 ✅ Suportado
- SQL Server 2019 ✅ Suportado
- SQL Server 2022 ✅ Suportado
- SQL Azure (Azure SQL DB) ✅ Suportado

### Entrar no container para rodar comandos sempre use o usuário local!

[](#entrar-no-container-para-rodar-comandos-sempre-use-o-usuário-local)

```
docker exec -it --user $(id -u):$(id -g) {container-name} bash

```

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance78

Regular maintenance activity

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~38 days

Total

32

Last Release

189d ago

Major Versions

1.0.0.x-dev → v2.0.02024-12-27

2.0.0.x-dev → v3.0.02025-04-12

3.2.0.x-dev → v4.0.02025-04-23

4.6.0.x-dev → 5.0.0.x-dev2025-06-10

v5.2.0 → 6.0.0.x-dev2025-08-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/9ee8b879db2c5cdc346dd189c6d822fbd4b375f2599e46528ef0662566148b8b?d=identicon)[shieldforce](/maintainers/shieldforce)

---

Top Contributors

[![Shieldforce](https://avatars.githubusercontent.com/u/17112341?v=4)](https://github.com/Shieldforce "Shieldforce (253 commits)")

### Embed Badge

![Health badge](/badges/shieldforce-scoob/health.svg)

```
[![Health](https://phpackages.com/badges/shieldforce-scoob/health.svg)](https://phpackages.com/packages/shieldforce-scoob)
```

###  Alternatives

[fof/masquerade

User profile builder extension for your Flarum forum.

2123.1k4](/packages/fof-masquerade)[anime-db/anime-db

The application for making home collection anime

252.1k2](/packages/anime-db-anime-db)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
