Dockerizando un proyecto con Codeigniter 4 (1/2)
Tags: tutorial, spanish, devops
Published: 2023-06-28 19:49:29

Super articulo (1 de 2) para aprender a como poner dentro de un contenedor de Docker un proyecto de Codeigniter 4 un framework de PHP que yo personalmente he ocupado durante bastante tiempo desde que esta la versión 3 y actualmente esta la versión 4. Todo para modo desarrollo. Esto es resultado de muchas horas de estudio, desde como funciona el framework hasta el funcionamiento de los contenedores en Docker. Si veo que esto es muy apoyado subo el de como rescatar esos proyectos legacy con Docker y Codeigniter 3.

Recomiendo tener un repositorio de código y ahí almacenar estos archivos, primero descargar e instalar Codeigniter 4 (CI4) puedes guiarte a través de la documentación oficial y a través de Composer en este link.

Una vez que lo tengas instalado dentro de la carpeta raíz ahí vamos a crear dos archivos, uno que se llame dev.Dockerfile y otro que se llame docker-compose.yml, estos dos archivos van a contener las configuraciones necesarias para poder levantar y correr nuestro proyecto.

Lo primero es personalizar la imagen por defecto de apache-php, para ello necesitamos la siguiente configuración. Esta es la configuración completa pero vamos a ir viendola parte por parte.


![Configuración completa](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vg26hikwxiemrk7412po.png)

La primera parte es especificar la imagen que vamos a personalizar, en este caso es la de php:8.0-apache que contiene no solo PHP sino que también el servidor de Apache, posteriormente se cambian algunas configuraciones de Apache para que tome la carpeta publica de CI4. Se renombra el archivo php.ini para que tome estas configuraciones nuestro servidor posteriormente.


![Parte 1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eb8i7f6bpsu69gjsq1oc.png)

Instalamos las dependencias necesarias para correr nuestro proyecto de CI4 sin ningún tipo de inconveniente.


![Parte 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8tovxywx4f44s3ol684e.png)

Instalamos el gestor de dependencias Composer dentro del contenedor. Copiamos del archivo de nuestra maquina al contenedor los archivos composer.json y composer.lock, establecemos la carpeta de trabajo y mandamos a descargar las dependencias necesarias de CI4.


![Parte 4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/voex9z0ph5umn2obzxzw.png)

Ahora copiamos todos los archivos de CI4 dentro del contenedor en la misma ruta que establecimos como ruta de trabajo.


![Parte 4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/snvstij376e5ecirl2rm.png)

Se ejecutan los permisos necesarios de usuarios y de escritura, lectura y ejecución de las carpetas en donde se guardan archivos necesarios para el funcionamiento del framework.


![Parte 5](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jey3adfmyeyeu35p84pc.png)

Po ultimo cabíamos los valores por defecto del php.ini por unos mas elevador para que no exista algún tipo de error al momento de cargar archivos.


![Parte 6](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b66vg6aavjht57x8o6if.png)

Esta es el fin de la primera parte aún falta hacer la configuración del archivo docker-compose.yml, crear nuestra imagen y levantar el contenedor.