Sign inSign up

lucasimorel/devtools-env

By lucasimorel

β€’Updated 5 months ago

Ambiente de desenvolvimento completo em um ΓΊnico comando.

Image
Integration & delivery
Developer tools
Web servers
2

115

lucasimorel/devtools-env repository overview

⁠🐳 devtools-env

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.


β πŸ“¦ O que estΓ‘ incluΓ­do

ServiΓ§oVersΓ£oPorta
PHP8.1 (mod_php)β€”
Apache2.48080
MySQL8.03306
CloudBeaverlatest8978
⁠Extensáes PHP instaladas

pdo_mysql mysqli gd zip mbstring curl xml bcmath opcache intl exif fileinfo redis + Composer


β πŸ—οΈ Arquitetura

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     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β”‚                              β”‚
β”‚           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                              β”‚
β”‚                                                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β πŸš€ Como usar

⁠1. Crie uma pasta para o ambiente
mkdir devtools && cd devtools
⁠2. Baixe o docker-compose.yml
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
⁠3. Suba o ambiente
mkdir -p www
docker compose up -d

Pronto! βœ…


⁠🌐 Acessos

O queURL
Sua aplicação PHPhttp://localhost:8080⁠
CloudBeaver (gerenciador do banco)http://localhost:8978⁠
MySQL direto (DBeaver Desktop, TablePlus etc)127.0.0.1:3306

β πŸ“ Onde ficam seus projetos

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 ./www aparece imediatamente no servidor β€” sem reiniciar nada.


β πŸ—„οΈ Configurando o CloudBeaver

Na primeira vez que acessar http://localhost:8978:

  1. Clique em "Continue as Administrator" ou crie um usuΓ‘rio admin
  2. VΓ‘ em "New Connection" β†’ escolha MySQL
  3. Preencha os dados:
CampoValor
Hostmysql_db
Porta3306
Bancomeu_banco
UsuΓ‘riodev
Senhadev123

⚠️ Use mysql_db como host (não localhost). O CloudBeaver se comunica com o MySQL pela rede interna do Docker.

  1. Clique em "Test Connection" β†’ "Finish"

β βš™οΈ Pontos de configuraΓ§Γ£o

⁠Credenciais do MySQL

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
⁠Mudar as portas (se houver conflito)
ports:
  - "9080:80"      # muda 8080 para 9080
  - "3307:3306"    # muda 3306 para 3307
  - "9978:8978"    # muda 8978 para 9978
⁠Conectar ao MySQL via PHP
<?php
$pdo = new PDO(
    'mysql:host=mysql_db;dbname=meu_banco;charset=utf8mb4',
    'dev',
    'dev123'
);

⚠️ Sempre use mysql_db como host dentro do PHP β€” nunca localhost.

⁠Usar .htaccess e mod_rewrite

O mod_rewrite jΓ‘ estΓ‘ ativo. Crie normalmente seu .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
⁠Usar Composer
docker exec -it php_apache bash
composer require vendor/pacote

β πŸ› οΈ Comandos ΓΊteis

# 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

β πŸ”„ Estrutura dos volumes

VolumeO que guarda
./wwwSeus arquivos PHP (pasta local mapeada)
mysql_dataDados do MySQL (persistem mesmo apΓ³s down)
cloudbeaver_dataConfiguraΓ§Γ΅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


β πŸ“‹ Requisitos

  • Docker Desktop (Windows / Mac / Linux)
  • Docker Engine + Compose (Linux)
  • 2GB de RAM disponΓ­vel
  • Portas 8080, 3306 e 8978 livres

β πŸ‘€ Autor

Lucas Imorel β€” hub.docker.com/u/lucasimorel⁠


β πŸ“„ LicenΓ§a

MIT β€” use Γ  vontade em seus projetos.

Tag summary

Content type

Image

Digest

sha256:6c6c4e006…

Size

242.9 MB

Last updated

5 months ago

docker pull lucasimorel/devtools-env