Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

docker-env

Ambiente de desenvolvimento em Docker para quem alterna entre várias linguagens e não quer instalar PHP, Node, Python, Go, Ruby e três bancos direto na máquina. Um docker-compose.yml com profiles decide o que sobe, e um script ./dev esconde os comandos longos do Compose.

Como funciona

Os projetos ficam em projects/. O ./dev up olha a pasta definida em PROJECT_DIR (.env) e detecta a linguagem pelo arquivo de manifesto:

Encontrou Sobe
composer.json PHP 8.3-FPM + Nginx + MySQL + Redis
package.json Node
requirements.txt / pyproject.toml Python
go.mod Go
Gemfile Ruby
nada reconhecido Nginx + PHP 8.3 (modo lite)

Cada serviço opcional pertence a um ou mais profiles do Compose (php, node, mysql, postgres, full...), então só o necessário consome RAM. UID/GID do host são repassados aos containers para os arquivos criados em volume não ficarem com dono root.

Serviços disponíveis

Serviço Imagem / versão Porta
Nginx 1.27-alpine 80 / 443
PHP-FPM 8.3 (padrão) e 8.1 —
Node 22 3000 (+5173 HMR)
Python 3.12 8000
Go / Ruby — —
MySQL + phpMyAdmin 8.0 3306 / 8081
PostgreSQL + pgAdmin 16-alpine 5432 / 8082
Redis 7-alpine 6379
Mailpit — 8025 (UI) / 1025 (SMTP)

Uso

cp .env.example .env
./dev up                 # detecta a linguagem do projeto
./dev up:lite            # só Nginx + PHP
./dev up:full            # tudo
./dev shell [serviço]    # shell dentro do container (padrão: php83)
./dev db:mysql | db:psql | db:redis
./dev logs [serviço]
./dev down

Criar projeto novo já dentro do ambiente:

./dev new:laravel minha-api
./dev new:vite meu-front
./dev new:fastapi servico      # também: next, django, gin, rails

About

Multi-language Docker dev environment (PHP 8.1/8.3, Node, Python, Go, Ruby + MySQL, Postgres, Redis, Nginx) driven by a small ./dev CLI

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages