Personalmente, lo que amo con Docker es la facilidad con la que es posible iniciar contenedores gracias A las imágenes que están en el DockerHub.

Pero cuando uno tiene una necesidad especial, especialmente en la configuración profesional, se da cuenta de que su propia imagen se vuelve esencial. Lo que es muy fácil de hacer con Docker gracias al archivo DOCKER.

DockerFile a un contenedor

un archivo DOCER ¿Qué es?

Un archivo DOCER es un archivo de texto con el que serás Capaz de dar a Docker las instrucciones necesarias para alimentar la creación de una imagen. Es una lata como la receta de la cocina de un plato para un cocinero.

Para comenzar, debemos entender cómo está escribiendo un archivo Docker, hay una sintaxis para que siguió las siguientes instrucciones:

  • FROM Establece la imagen de origen
  • LABEL permite agregar metadatos a una imagen
  • RUN permite ejecutar comandos en su contenedor
  • ADD agrega archivos a su
  • WORKDIR contenedor se establece su directorio de trabajo
  • le permite definir los puertos de escucha predeterminados
  • VOLUME Establece los volúmenes utilizables
  • CMD establece el comando predeterminado al ejecutar los contenedores de Docker.

Escriba su primer archivo de distribución

para nuestro ejemplo Construiremos una imagen para el software Scrumblr que le permite mostrar una matriz de seguimientos de manchas modificables en tiempo real.
Este software utiliza Redis y Nodejs para trabajar, veremos cómo crear una imagen de Docker a partir de él para obtener el siguiente resultado:

Scrumblr Screen Capture'écran de scrumblr

Un archivo DOCKERFILE siempre está escrito de la misma manera. Comenzamos al poner la imagen que nos servirá como base para el trabajo y la acción se realiza en esta imagen. Para encontrar la imagen que corresponde a su necesidad, le aconsejo que comience desde una imagen oficial. Estas imágenes se actualizan regularmente y están certificadas por Docker.

Requisitos previos

Hay algunos requisitos previos para realizar este tutorial:

  • un host con la ventana acopladora instalada (Si esto no es el tema se procesa en este artículo: Instale Docker para implementar sus aplicaciones)
  • Crear un directorio de trabajo para este proyecto.
  • Crear un archivo DOCERFILE en la carpeta del proyecto .

La imagen básica

Para nuestro proyecto, nos iremos con una imagen Ubuntu 18.04, que es una imagen oficial.

FROM ubuntu:18.04LABEL maintainer="[email protected]"

Como se indicó anteriormente, la imagen que vamos a usar en nuestro archivo Docker por la directiva de seguimiento del nombre de la imagen y su versión.
La directiva de la etiqueta le permite agregar información a la imagen en nuestro caso el Dirección postal de la imagen.

Instalación de los requisitos previos

# Installation des prérequisRUN apt-get update && apt-get install -y wget sudo supervisor git redis && \ mkdir -p /var/log/supervisor && \ mkdir -p /etc/supervisor/conf.d

Ahora estamos empezando a cambiar la imagen básico. Para llevar a cabo un comando, utilizamos la directiva de ejecución que solo ejecuta el comando declarado después de la directiva.

En este paso instalamos los diferentes requisitos previos para la operación del nombre Scrumblr:

  • Actualización de depósitos
  • Instalación de paquetes (WETGE, SUDO, SUPERVISOR, GIT y REDIS)
  • Creación de la carpeta de supervisor en / var / log /
  • Creación de la carpeta CONF.D IN / ETC / SUPERVISOR /

Para ejecutar múltiples comandos después de tener que anularlos entre sí con «&& «que permite que el código de Bash se ejecute en las comandas de la serie y» \ «que le permita volver a la línea para ver más claramente en el código.

Para el siguiente paso, le proporcionaremos el archivo de configuración del Servicio de Supervisor en Docker para copiar en nuestra imagen.

Para iniciar Crear un archivo de supervisor .conf en el directorio donde está v Otre DockerFile y agregue el siguiente contenido.

nodaemon=truecommand=redis-serverautostart=trueautorestart=trueuser=rootstdout_logfile=/var/log/redis/stdout.logstderr_logfile=/var/log/redis/stderr.logcommand=node server.js --port 80autostart=trueautorestart=trueuser=rootstdout_logfile=/var/log/supervisor/scrumblr.logstderr_logfile=/var/log/supervisor/scrumblr_err.log

Luego, le dice a DUCHER con la dirección Agregar para agregar nuestro archivo supervisor.conf en el / etc / etc / de nuestra imagen.

ADD supervisor.conf /etc/supervisor.conf

Instalación de NODEJS

Ahora nos instalaremos en nuestra imagen de NODEJS que nos permitirá compilar y ejecutar las fuentes de Scrumblr. Como antes, usaremos la directiva de ejecución para realizar las siguientes acciones.

  • Descargar Script de instalación de NODEJS
  • Ejecución del script descargado
  • Instalación del paquete Nodejs
# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs

Instalación Scrumblr

Ahora podemos instalar la aplicación Scrumblr en nuestra imagen Siempre usando la directiva de ejecución para realizar las siguientes acciones:

  • Clone de Scrumbl Fuentes del depósito de GitHub del proyecto
  • Mover en carpeta / Scrumblr
  • Instalación Scrumblr a través de NPM
# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install

Cambio del archivo CONFIG.JS

Para el último paso de configuración Debemos modificar una línea del archivo «config.js» para permitir la aplicación de alimentación conectada a la base de datos REDIS .

La siguiente línea que usa la directiva de ejecución una vez más usa el comando «SED» para reemplazar la cadena de carácter 127.0.0.1:6379 en Redis: //127.0.0.1: 6379.

Finalización del archivo DOCERFILE

Para terminar, proporcionaremos las instrucciones necesarias para realizar nuestra imagen en un contenedor.

  • workdir especifica el Directorio de trabajo del contenedor aquí / Scrumblr
  • El expute especifica el puerto de comunicación en nuestro caso, el stopsignal 80
  • indica la señal del sistema que detiene el contenedor
  • cmd indica el comando Para ejecutar al inicio del contenedor
WORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

Si el comando en la directiva CMD está compuesto por varios campos, es imperativo respeto la siguiente sintaxis:

Nuestro archivo DOCER ahora está completo y debe verse así:

FROM ubuntu:18.04LABEL maintainer="[email protected]"# Installation des prérequisRUN apt-get update && apt-get install -y wget sudo supervisor git redis && \ mkdir -p /var/log/supervisor && \ mkdir -p /etc/supervisor/conf.dADD supervisor.conf /etc/supervisor.conf# Installation de NodeJSRUN wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash - && \ apt-get install -y nodejs# Installation de SCRUMBLRRUN git clone https://github.com/aliasaria/scrumblr.git && \ cd scrumblr && \ npm install# Modification du fichier config.jsRUN sed -i -e "s/127.0.0.1:6379/redis:\/\/127.0.0.1:6379/g" /scrumblr/config.jsWORKDIR /scrumblrEXPOSE 80STOPSIGNAL SIGTERMCMD 

Construcción y lanzamiento de nuestra imagen

Solo tenemos que construir nuestra imagen al designarlo correctamente. Para hacer este movimiento en el directorio donde se contiene su archivo DOCKER y el archivo supervisor.conf y inicie el siguiente comando:

  • el argumento -t Especifique una etiqueta en nuestra imagen.
captura de pantalla terminal que muestra el control SED'écran terminal montrant la commande SED

Una vez que su imagen está construida y etiquetada, puede ejecutarla y validar su funcionamiento con el siguiente comando:

docker run --detach --publish 8080:80 --name scrumblr scrumblr:latest
  • -detach Le permite ejecutar el contenedor en el modo de separación, es decir, el contenedor funcionará en el modo de servicio.
  • – Publish le permite especificar el puerto para Accede a la aplicación. Primero debe especificar el puerto de host aquí en el 8080 y luego el puerto del contenedor de arriba.
  • -name le permite configurar el nombre del contenedor.
Captura de pantalla que muestra el comando de ejecución de Docker'écran montrant la commande docker run

Ahora que su contenedor es Lanzado Puede acceder a su Scrumblr a través de la dirección IP de su host de Docker en el puerto 8080.

Captura de pantalla de una web Navegador con Scrumblr'écran d'un navigateur web avec SCRUMBLR

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *