Este proyecto tiene como objetivo proporcionar un entorno de desarrollo preconfigurado para la creación de componentes de Joomla! 3 utilizando Docker.
- Docker
- Docker Compose
El archivo .env contiene varias variables que puedes editar para configurar el entorno de desarrollo. Algunas de las variables más importantes son:
JOOMLA_DB_NAME: El nombre de la base de datos.JOOMLA_DB_USER: El usuario de la base de datos.JOOMLA_DB_PASSWORD: La contraseña de la base de datos.
- Clonar el repositorio: git clone https://github.com/alejoasotelo/com_base.git
- Ir al directorio del proyecto: cd com_base
- Copiar el archivo de ejemplo .env.dist y renombrarlo a .env:
cp .env.dist .env - Editar el archivo .env según tus necesidades.
- Iniciar el contenedor de Docker:
docker-compose up -d - Ir a
http://localhosten el navegador. Seguir el paso 7 la primera vez, sino ya está para usar.
- Instalar Joomla. En los datos de configuración poner:
- Ejecutar
php build/build-component.phppara generar el archivo de instalacióndist/com_base.zipdel componente de la carpetacomponent/ - Instalar en Joomla el componente que se generó en la carpeta
dist/com_base.zip - Dar de baja docker:
docker-compose down - Descomentar las lineas 27 y 28 de docker-compose.yml (Las que empiezan por
# - ./component/adminy# - ./component/site) para que docker lea los archivos del componente
Una vez instalado el componente solo hay que levantar docker y empezar a desarrollar.
- Iniciar el contenedor de Docker:
docker-compose up -d - Modificar los archivos del componente en la carpeta
/componenty los cambios ya se reflejan en Joomla - Disfrutar del proceso de desarrollo
Una vez que el contenedor esté en ejecución, puedes acceder a tu componente Joomla! en el navegador web utilizando la URL http://localhost/.
En la carpeta component hay un component base generado con https://github.com/alejoasotelo/joomla-scaffolding/. Es de ejemplo, eliminar y generar uno nuevo.
La estructura:
componentadmin: archivos y carpetas del backend del componentesite: archivos y carpetas del frontend del componentebase.xml: archivo de instalación (cuando generas tu component este archivo va a tener el nombre que le hayas puesto a tu componente)
Recomiendo usar joomla-scaffolding para crear el component inicial y ir agregando los MVC que se vayan necesitando. De esta manera se evitar tener que desarrollar tareas repetitivas como lo es crear los MVC (modelo-vista-controlador).
Una vez que se quiera deployar el proyecto ejecutamos php build/build-component.php desde el root del proyecto y nos va a generar el archivo de instalación dist/com_base.zip.
Este zip se instala en nuestro Joomla y listo, componente deployado. Es un deploy manual por el momento.
Puedes personalizar el entorno de desarrollo para satisfacer tus necesidades específicas editando los archivos docker-compose.yml y Dockerfile.
Bind for 0.0.0.0:3306 failed: port is already allocate: revisar no tener algún proceso que esté ocupando el puerto 3306. Algún mysql corriendo de algun xampp/wampp, otro docker quizas? Lo mismo aplica para el puerto 80 (revisar apache, httpd, etc).
