Ambiente de desenvolvimento completo em um ΓΊnico comando.
115
Ambiente de desenvolvimento completo em um ΓΊnico comando. PHP 8.1 + Apache 2.4 + MySQL 8.0 + CloudBeaver β tudo pronto para criar suas aplicaΓ§Γ΅es.
| ServiΓ§o | VersΓ£o | Porta |
|---|---|---|
| PHP | 8.1 (mod_php) | β |
| Apache | 2.4 | 8080 |
| MySQL | 8.0 | 3306 |
| CloudBeaver | latest | 8978 |
pdo_mysql mysqli gd zip mbstring curl xml bcmath opcache intl exif fileinfo redis + Composer
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β SEU COMPUTADOR β
β β
β Navegador DBeaver / ./www/ β
β localhost:8080 CloudBeaver seus projetos β
β β localhost:8978 β β
β β β β β
β βββββββΌβββββββββββββββββββΌβββββββββββββββββΌββββββββββ β
β β DOCKER β β β
β βΌ βΌ βΌ β
β βββββββββββββ βββββββββββββββ ββββββββββββββββ β
β β Apache β β CloudBeaver β β Volume β β
β β PHP 8.1 ββββββ (Web GUI) β β ./www βββΊ β β
β β :80 β β :8978 β β /var/www/html β β
β βββββββ¬ββββββ ββββββββ¬βββββββ ββββββββββββββββ β
β β β β
β ββββββββββββ¬ββββββββ β
β βΌ β
β ββββββββββββββββ β
β β MySQL 8.0 β β
β β :3306 β β
β β πΎ mysql_dataβ β
β ββββββββββββββββ β
β β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
mkdir devtools && cd devtools
curl -O https://raw.githubusercontent.com/lucasimorel/devtools-env/main/docker-compose.yml
Ou crie manualmente o arquivo docker-compose.yml com o conteΓΊdo abaixo:
services:
php_apache:
image: lucasimorel/devtools-env:latest
container_name: php_apache
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./www:/var/www/html
depends_on:
- mysql
networks:
- devtools_network
mysql:
image: mysql:8.0
container_name: mysql_db
restart: unless-stopped
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root123
MYSQL_DATABASE: meu_banco
MYSQL_USER: dev
MYSQL_PASSWORD: dev123
volumes:
- mysql_data:/var/lib/mysql
networks:
- devtools_network
cloudbeaver:
image: dbeaver/cloudbeaver:latest
container_name: cloudbeaver
restart: unless-stopped
ports:
- "8978:8978"
volumes:
- cloudbeaver_data:/opt/cloudbeaver/workspace
depends_on:
- mysql
networks:
- devtools_network
volumes:
mysql_data:
cloudbeaver_data:
networks:
devtools_network:
driver: bridge
mkdir -p www
docker compose up -d
Pronto! β
| O que | URL |
|---|---|
| Sua aplicaΓ§Γ£o PHP | http://localhost:8080β |
| CloudBeaver (gerenciador do banco) | http://localhost:8978β |
| MySQL direto (DBeaver Desktop, TablePlus etc) | 127.0.0.1:3306 |
devtools/ β pasta que vocΓͺ criou
βββ docker-compose.yml
βββ www/ β SEUS PROJETOS FICAM AQUI
βββ index.php β http://localhost:8080
βββ meu-site/ β http://localhost:8080/meu-site
β βββ index.php
βββ meu-sistema/ β http://localhost:8080/meu-sistema
β βββ index.php
βββ api/ β http://localhost:8080/api
βββ index.php
π‘ Qualquer arquivo que vocΓͺ salvar em
./wwwaparece imediatamente no servidor β sem reiniciar nada.
Na primeira vez que acessar http://localhost:8978:
| Campo | Valor |
|---|---|
| Host | mysql_db |
| Porta | 3306 |
| Banco | meu_banco |
| UsuΓ‘rio | dev |
| Senha | dev123 |
β οΈ Use
mysql_dbcomo host (nΓ£olocalhost). O CloudBeaver se comunica com o MySQL pela rede interna do Docker.
Edite o docker-compose.yml antes de subir:
environment:
MYSQL_ROOT_PASSWORD: root123 # β senha do root
MYSQL_DATABASE: meu_banco # β banco criado automaticamente
MYSQL_USER: dev # β usuΓ‘rio da aplicaΓ§Γ£o
MYSQL_PASSWORD: dev123 # β senha do usuΓ‘rio
ports:
- "9080:80" # muda 8080 para 9080
- "3307:3306" # muda 3306 para 3307
- "9978:8978" # muda 8978 para 9978
<?php
$pdo = new PDO(
'mysql:host=mysql_db;dbname=meu_banco;charset=utf8mb4',
'dev',
'dev123'
);
β οΈ Sempre use
mysql_dbcomo host dentro do PHP β nuncalocalhost.
.htaccess e mod_rewriteO mod_rewrite jΓ‘ estΓ‘ ativo. Crie normalmente seu .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
docker exec -it php_apache bash
composer require vendor/pacote
# Subir
docker compose up -d
# Parar
docker compose down
# Ver logs ao vivo
docker compose logs -f
# Entrar no container PHP
docker exec -it php_apache bash
# Entrar no MySQL via terminal
docker exec -it mysql_db mysql -u dev -pdev123 meu_banco
# Reiniciar sΓ³ o PHP
docker compose restart php_apache
# Atualizar a imagem
docker compose pull && docker compose up -d
| Volume | O que guarda |
|---|---|
./www | Seus arquivos PHP (pasta local mapeada) |
mysql_data | Dados do MySQL (persistem mesmo apΓ³s down) |
cloudbeaver_data | ConfiguraΓ§Γ΅es e conexΓ΅es do CloudBeaver |
Os dados do MySQL nΓ£o sΓ£o apagados ao rodar
docker compose down. Para apagar tudo:docker compose down -v
8080, 3306 e 8978 livresLucas Imorel β hub.docker.com/u/lucasimorelβ
MIT β use Γ vontade em seus projetos.
Content type
Image
Digest
sha256:6c6c4e006β¦
Size
242.9 MB
Last updated
5 months ago
docker pull lucasimorel/devtools-env