Ambiente de Desenvolvimento e Produção de APPs em Codeigniter 4
224
Este repositório fornece uma imagem Docker otimizada para desenvolvimento e produção de aplicações CodeIgniter 4 com PHP 8.2, baseada no Apache. A imagem ebuzaneli/codeigniter4-php:8.2 foi projetada para facilitar a inicialização de projetos web modernos, com suporte completo a banco de dados MariaDB e administração via phpMyAdmin.
Nome da imagem:
ebuzaneli/codeigniter4-php:8.2
Este ambiente completo inclui:
Crie um arquivo docker-compose.yml com o conteúdo abaixo:
version: '3.8'
services:
app:
image: ebuzaneli/codeigniter4-php:8.2
container_name: ci4_app
restart: always
volumes:
- /docker/modelo/site/app:/var/www/html
- /docker/modelo/site/apache2/000-default.conf:/etc/apache2/sites-available/000-default.conf
ports:
- "80:80"
environment:
MODE: development
TYPE_PROTOCOL: HTTP
SESSION_NAME: SESS_MODELO
TZ: America/Sao_Paulo
depends_on:
- db
working_dir: /var/www/html
db:
image: mariadb:11
container_name: mariadb_ci4
restart: always
environment:
TZ: America/Sao_Paulo
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: codeigniter
MYSQL_USER: ciuser
MYSQL_PASSWORD: cipassword
volumes:
- /docker/modelo/site/db:/var/lib/mysql
phpmyadmin:
image: phpmyadmin:latest
container_name: phpmyadmin_ci4
restart: always
ports:
- "8081:80"
environment:
TZ: America/Sao_Paulo
PMA_HOST: db
MYSQL_ROOT_PASSWORD: root
depends_on:
- db
/docker/modelo/site/
├── app/
├── db/
└── apache2/
└── 000-default.conf
rootroot000-default.conf)O arquivo 000-default.conf define o VirtualHost padrão utilizado pelo Apache. Ele é fundamental para garantir que o CodeIgniter 4 funcione corretamente, já que esse framework exige que o diretório public/ seja definido como a raiz do site (DocumentRoot), evitando exposição indevida de arquivos do núcleo da aplicação.
<VirtualHost *:80>
ServerName seu.app.com.br
ServerAlias seu.alias
ServerAdmin [email protected]
DocumentRoot /var/www/html/public
<Directory /var/www/html/public>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/public?O CodeIgniter 4 exige que o diretório public/ seja a raiz visível da aplicação. Ele contém o index.php que inicia o framework, enquanto todo o restante da estrutura permanece inacessível via navegador.
| Valor | Descrição |
|---|---|
| development | Ativa configurações de desenvolvimento, exibe erros detalhados no PHP |
| production | Ativa configurações de produção (melhor performance, segurança ativada) |
| Variável | Finalidade | Exemplo |
|---|---|---|
| MODE | Ambiente: development ou production | development |
| TYPE_PROTOCOL | Protocolo usado pelo Apache (HTTP ou HTTPS) | HTTP |
| SESSION_NAME | Nome da sessão PHP (usado em produção) | SESS_MODELO |
| TZ | Fuso horário usado no container | America/Sao_Paulo |
docker compose down
Sinta-se à vontade para sugerir melhorias, relatar problemas ou adaptar para suas necessidades!
Autor:
Enio Marcelo Buzaneli
Content type
Image
Digest
sha256:902ff5d17…
Size
280.7 MB
Last updated
2 months ago
docker pull ebuzaneli/codeigniter4-php:8.2