Sign inSign up

ebuzaneli/codeigniter4-php

By ebuzaneli

•Updated 2 months ago

Ambiente de Desenvolvimento e Produção de APPs em Codeigniter 4

Image
Developer tools
Web servers
0

224

ebuzaneli/codeigniter4-php repository overview

⁠CodeIgniter 4 com PHP 8.2 🐘⚙️

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.


⁠📦 Imagem Docker

Nome da imagem:
ebuzaneli/codeigniter4-php:8.2


⁠🛠️ Requisitos

  • Docker (v20 ou superior)
  • Docker Compose (v1.29 ou superior)
  • Sistema Linux, Windows ou macOS

⁠📂 O Que Está Incluído

Este ambiente completo inclui:

  • CodeIgniter 4 + PHP 8.2 com Apache
  • MariaDB 11 como banco de dados
  • phpMyAdmin para gerenciamento visual do banco de dados

⁠🚀 Como Usar

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

⁠📁 Estrutura Esperada

/docker/modelo/site/
├── app/
├── db/
└── apache2/
    └── 000-default.conf

⁠🌐 Acesso aos Serviços


⁠⚙️ Sobre o Apache VirtualHost (000-default.conf)

⁠📌 O que é e por que usar?

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.

⁠📄 Modelo Completo e Comentado
<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>

⁠🧠 Por que apontar para /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.


⁠🧪 Modo de Execução (MODE)

ValorDescrição
developmentAtiva configurações de desenvolvimento, exibe erros detalhados no PHP
productionAtiva configurações de produção (melhor performance, segurança ativada)

⁠🛡️ Variáveis de Ambiente (Resumo)

VariávelFinalidadeExemplo
MODEAmbiente: development ou productiondevelopment
TYPE_PROTOCOLProtocolo usado pelo Apache (HTTP ou HTTPS)HTTP
SESSION_NAMENome da sessão PHP (usado em produção)SESS_MODELO
TZFuso horário usado no containerAmerica/Sao_Paulo

⁠🧼 Encerrando os Serviços

docker compose down

⁠📣 Contribua

Sinta-se à vontade para sugerir melhorias, relatar problemas ou adaptar para suas necessidades!


Autor:
Enio Marcelo Buzaneli

Tag summary

Content type

Image

Digest

sha256:902ff5d17…

Size

280.7 MB

Last updated

2 months ago

docker pull ebuzaneli/codeigniter4-php:8.2