Escuchaste a más de un colega comentar que Docker es una gran herramienta y te estás empezando a preguntar si no te estás perdiendo de algo.
Miraste un poco la documentación y, honestamente, el calificativo amigable le queda algo holgado… por decirlo amablemente.
Todo ese tema de las imágenes, los contenedores, los volúmenes… es mucho.
Y de entrada toparse con un archivo como:
FROM php:7.1-apache LABEL vendor="Mautic" LABEL maintainer="Luiz Eduardo Oliveira Fonseca <luiz@powertic.com>" # Install PHP extensions RUN apt-get update && apt-get install --no-install-recommends -y \ cron \ git \ wget \ sudo \ libc-client-dev \ libicu-dev \ libkrb5-dev \ libmcrypt-dev \ libssl-dev \ libz-dev \ unzip \ zip \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \ && rm -rf /var/lib/apt/lists/* \ && rm /etc/cron.daily/* RUN docker-php-ext-configure imap --with-imap --with-imap-ssl --with-kerberos \ && docker-php-ext-configure opcache --enable-opcache \ && docker-php-ext-install imap intl mbstring mcrypt mysqli pdo_mysql zip opcache bcmath\ && docker-php-ext-enable imap intl mbstring mcrypt mysqli pdo_mysql zip opcache bcmath # Install composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer # Define Mautic volume to persist data VOLUME /var/www/html # Define Mautic version and expected SHA1 signature ENV MAUTIC_VERSION 2.16.2 ENV MAUTIC_SHA1 df6735df8d7d31cc6bc505c38ee8147b40b8311b # By default enable cron jobs ENV MAUTIC_RUN_CRON_JOBS true # Setting an root user for test ENV MAUTIC_DB_USER root ENV MAUTIC_DB_NAME mautic # Setting PHP properties ENV PHP_INI_DATE_TIMEZONE='UTC' \ PHP_MEMORY_LIMIT=512M \ PHP_MAX_UPLOAD=128M \ PHP_MAX_EXECUTION_TIME=300 # Download package and extract to web volume RUN curl -o mautic.zip -SL https://github.com/mautic/mautic/releases/download/${MAUTIC_VERSION}/${MAUTIC_VERSION}.zip \ && echo "$MAUTIC_SHA1 *mautic.zip" | sha1sum -c - \ && mkdir /usr/src/mautic \ && unzip mautic.zip -d /usr/src/mautic \ && rm mautic.zip \ && chown -R www-data:www-data /usr/src/mautic # Copy init scripts and custom .htaccess COPY docker-entrypoint.sh /entrypoint.sh COPY makeconfig.php /makeconfig.php COPY makedb.php /makedb.php COPY mautic.crontab /etc/cron.d/mautic RUN chmod 644 /etc/cron.d/mautic # Enable Apache Rewrite Module RUN a2enmod rewrite # Apply necessary permissions RUN ["chmod", "+x", "/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"] CMD ["apache2-foreground"]
No da muchas ganas de incursionar, ¿cierto?
Todo lo que querías era hacer una prueba sencilla. Como para comprobar por tus propios medios, si todo lo que te dijeron de Docker era realmente así y en cambio… tenés que ponerte a escribir archivos de texto inentendibles.
Te tengo buenas noticias: hay varias herramientas muy simples que podés usar para generar los dichosos Dockerfile
.
Te presento algunas.
Devilbox
http://devilbox.org/ te permite crear un entorno moderno y altamente personalizado con soporte para LAMP sobre docker.
Su instalación es sencilla:
git clone https://github.com/cytopia/devilbox cd devilbox cp env-example .env docker-compose up
Y listo.
En tus manos un LAMP con Redis, Memcached, MongoDB, phpMyAdmin y un montón de herramientas de administración disponibles en http://localhost
para hacer todo bien fácil.
Ah, y claro, si querés ver qué hay detrás de la magia, el archivo docker-compose.yml
está a tu disposición en el directorio donde clonaste el repo.
PHPDocker
https://phpdocker.io/ es un sitio donde podés, a través de un wizard, configurar la imagen Docker que querés generar:
Una vez tenés todo donde debe estar descargás el archivo comprimido, lo descomprimís en el directorio que más te guste, docker-compose up
y, voilá, tu entorno php Dockerizado está disponible con todos los condimentos que hayas seleccionado.
Sail
Sail es una herramienta perteneciente al framework Laravel. Si creas una nueva aplicación desde cero no tendrás más que ejecutar ./vendor/bin/sail up
dentro del directorio raíz de tu proyecto para comenzar.
Una vez descargado y configurado todo podrás entrar en http://localhost
y disfrtuar de tu nuevo entorno de trabajo con Docker.
Y, como siempre, el archivo docker-compose.yml estará allí para investigar/modificar.
Y un par más…
Un par de herramientas más que vale la pena conocer son:
- Deck: una aplicación de escritorio basada en electron.js con la que puedes crear un ambiente entero para desarrollo. La iba a incluir en este listado pero al probarla falló la instalación… tal vez más adelante cuando esté más madura la agregue.
- Las imágenes de ServerSideUp optimizadas para ir a producción.
Ahora sí, todo listo para dockerizar tus aplicaciones!
- ¿Cómo instalar extensiones PHP en Docker? - 26/11/2024
- Cómo agregar una página de error 500 en un proyecto PHP - 31/10/2024
- ¿Cuántos contenedoresnecesita tu php? - 28/10/2024