Docker es una herramienta maravillosa para desarrolladores y el concepto de empaquetar tus unencias en un solo lugar que corre en cualquier lugar suena casi utóṕico.
En este artículo aprenderás
- Cómo Leer un Dockerfile
- Проблемы Comunes al correr tu dockerfile
- Analizar Dockerfile de una Spa
- Cómo construir tus propios dockerfile
- Ключевые слова Básicas sobre los dockerfile
- Qué es alpine y porqué es usado
- Donde Buscar imágenes para tus interenedores
Usaré un ejemplo para que podamos entender mejor el funcionamiento de un dockerfile, un ejemplo para una aplicación de React
FROM node:current-alpine3.14 WORKDIR /usr/src/app COPY package.json /app COPY . . RUN npm set progress=false && npm install EXPOSE 8086 CMD ["npm", "run", "storybook"]
Si empleamos la similitud entre uncendor de esos que los barcos transportan y los docker lo podemos entender de una manera muaco más sencilla y práctica.
Es verdad que dentro de un intreendor puedes meter una cantidad exacta de mercancía, pero de dierentes tipos y estos poseen un tamaño expectifico para que sean fáciles de edimificar y de llevar por los barcos.
En docker funciona de forma аналогично, соло nuestra mercancía es nuestra aplicación y las Reglas son las siguientes.
De manera práctica nos encontraremos con
ИЗ
FROM node:current-alpine3.14
ESTO ВОЗДЕЙСТВИЕ QUE SE GENERA UNERENEDOR AS PARTIR DE UNA Imagen , Podemos pensar en ella como un mools que es la primera capa de nuestro compendor. Ella Tendrá Configuraciones Explicityficas Que Servirán Para Correr Los Comandos Consecuentes, Puedes ver que uso node: current-alpine3.14
Esta Imagen la incuentro en la página de Docker Hub , Que Podemos pensar en ella como un Repositorio de imágenes, comúnmente buscarás imágenes oficiales (Estas tienen un símbolo de Imagen Oficial A Lado del Nombre).
En docker funciona de forma аналогично, соло nuestra mercancía es nuestra aplicación y las Reglas son las siguientes.
Ahora Conocemos Que Esto de Node: Current-Alpine3.14 Es El Nombre Tepply de la Imagen Que usamos como base, pero ¿wees alpine? Alpine Es El Sistema Operativo (Basado En Linux) de Nuestra Imagen. Este nombre es famoso porque prespresta una Imagen con un peso mínimo de mega bytes, y esto se busca para que que tu compendor final no pese muaco, ya que no conviene muco tener tu aplicación de 50mb y que base base 250 мб.
Workdir
WORKDIR /usr/src/app
El Workdir Indica El Directorio de Trabajo, nos refermos a el como un Directorio que se crea dent del que que se usará como base para parrer los comandos consecuentes.
Entronces Conocemos que el workdir se refiere más nuestro compenedor que a tu aplicación por eso erás que en mugos lugares se le conoce como/appaciones, покой Нет Tanto de Tu Aplicación, Esto Vendrá En Los ProXimax Comandos.
Копия
COPY package.json /app COPY . .
Los Comandos Copy, Hacen Honor A Su Nombre de Copiar Los Archivos de Tu Aplicación a la del Compenedor/App.
Primero copiamos el package.json porque de allí corremos comandos npm.
Luego Empleamos el Copy. Анкет
Admito que esto no es muy explicativo pero básicamente es copiar lo de tu degerialio de trabajo (workdir) el que ya habíamos espectificado anthermente.
Podríamos traducir копия./приложение
El Workdir Indica El Directorio de Trabajo, nos refermos a el como un Directorio que se crea dent del que que se usará como base para parrer los comandos consecuentes.
БЕЖАТЬ
RUN npm set progress=false && npm install
Este Puede Aparecer Bastante en el desarrollo de una aplicación, y hace lo que su nombre, corre en tu compenedor lo le le pongas a suisquierda así de simple.
Обычный Cuando agarras una aplicación, lo primero ques es instalar las deviewencias porque sino la aplicación no corre, esto es un clásico. Bueno en Docker, высасывающий, Corre el npm установить Que harías normalmente. Sobre el set es para que no meustre la barra de progreso al instalar devidencias, el && une comandos por lo le le le coloco npm install.
РАЗОБЛАЧАТЬ
EXPOSE 8086
Разоблачить Sirve para decir que el puerto que que tu incerendor usará.
Aquí está el dilema y es que colocarlo no hará efecto a la hora de correr el compenedor, Esto sirve más decomanación. Lee Sobre Como Correr Un Empenedor
En Mi Minkin está bien colocarlo porque la documentación es Muy A La Hora de Correrlo no Esperar Que abra en ese puerto por defecto.
CMD
CMD ["npm", "run", "storybook"]
Cmd es La Consola Que Corre el Comando Que Coloques Entre Sus Corchetes, Esto Sucederá Cuando Se Termine de Correr El Compenedor.
Quizá al final de la construción de la Imagen no se ejecute pero su función se realizará al final de correr el intendor y Нет La Construcción.
Recapitulando
# Usar una imagen FROM node:current-alpine3.14 # Establecer el directorio de trabajo de nuestro contenedor WORKDIR /usr/src/app # Copiar el package.json a la carpeta /app de nuestro contenedor COPY package.json /app # Copiará otros archivos de la aplicación COPY . . # Ejecutar el comando npm set progress=false && npm install RUN npm set progress=false && npm install # Exponer el puerto 8086 de el contenedor docker, fin de documentación EXPOSE 8086 # Correrá este comando al final cuando se esté corriendo el contenedor CMD ["npm", "run", "storybook"]
Finalizando
Al Final de todo esto recuerda queedes ejecutar el comando Docker Build -t Aplicacion -Docker.
-t
Значение Que Colocarás un Tag que vendria a ser unombre, aquí Нет Puedes USAR Letras Mayúsculas Así Que Sepo Con un guión.
Эль Анкет
Al Final Targina Que Buscará Dentro de la Carpeta un Dockerfile y lo Leerá para crear una Imagen a partir de las instucciones, si abres la terminal desde otra carpeta y quieres correr el comando debes sustituir ese punto con ubicacióne de el dockerfile, lo mystuir erse punto con la ubicacióne de el dockerfile, lo my erse con la ubicacióne de el dockerfile debeses Si Tienes más de un dockerfile en tu aplicación pero es es algo que no suele suceder.
También Quiero destacar Que Tu Archivo Se Debe Llamar Dockerfile, Si le Llamas Dockerfile, Utro nombre te mandará, Este es Un Frucuente También, Recuerda Dockerfile.
Оригинал: «https://dev.to/fernandocutire/docker-para-desarrolladores-bk6»