Рубрики
Без рубрики

Angular + Docker … Правда?

ESTE ES UN УПРАВЛЕНИЕ Básico de Docker Para Front End Developers, De igual forma los conceplos explica … с меткой угловой, докер, JavaScript, микросервисов.

ESTE ES UN УПРАВЛЕНИЕ Básico de Docker Para Front End Developers, de igual forma los conceplos explicados acá, se pueden usar como base para dockerizar cualquier otra app creada en otro lenguaje ó framework.

Cuando El Big Bang de Microservicios Sucedió, Se Dice Que Surgió de las profundidas un concepto que en su tiempo fue nonvador y de gran utilidad, los dioses le llamaron “máquinas virtuales (VM)”. Las Máquinas Virtuales tienen un Sistema operativo Apporto Con Su Propia Administración de Memoria instalada con la sobrecarga asociada de los controladores de dispositivos virtuales. En una máquina virtual, se emulan recursos valiosos para el so huésped y el hipervisor, lo que hace postible ejecutar mucalas instancias de uno o más sistemas operativos en paralelo en una sola máquina (o хозяин). Cada Sistema operativo Invitado se ejecuta como una entidad индивидуальный хозяин Del Sistema.

Todo iba funcionando de Maravilla, Pero Como Siempre, Nada Es Perfecto. COSTOS DE MANTENIMITO DEL ADHAWARE, DINERO, ESOS DEMONIOS QUE RODEAN NUESTOS DESARROLLOS, Comenzaron A Salir de La Oscuridad y Abrumar El Paraíso de Las Máquinas Virtuales. LAS VMS SON HARDWARE DESIGIENTES, LO LAS HACEN Más $$ DE USAR E INTULAR, Además Al Tener un Sistema operativo Invitado, Estaban Concumento Más Memoria de lo Esperado. Cuando todos empezaban A Desesperarse, Desde El Mismo Océano, Surgió La Esperanza, Una Pequeña Ballena Trajo La Respuesta: Engenedores.

Tomado de https://www.testautomationguru.com

Украшенные, докер.

Los Contenedores Son Más Pequeños Que Las Máquinas virtuales y outmenten un arranque más rápido con un mejor rendimiento, menos aislamiento y una мэра Compatibilidad. La Mejor opción para ejecutar una arquitectura de applicación de microservicios son los uredenedores de aplicaciones. En Términos simples, Docker es una plataforma de Software Que Shipifica el Proceso de Creación, ejecución, Administación y Distribución de Aplicaciones. Lo Hace Virtualizando el Sistema operativo de la Computadora en la que está enstalado yejecutándose.

Концептос Басикос

  • Dockerfile : Un dockerfile es un documento de texto que intiene todos los comandos que un usuario podría llamar en la línea de comandos para ensamblar una Imagen.

  • Docker Image : Es Un Archivo Ejecutable Que Contiene todas las bibliotecas y configuraciones necesarias para ejecutar la aplicación. Tiene varias capas apiladas una encima de la otra y oursadas como un solo objeto. Una Imagen Es Creada, Usando Un Dockerfile.

  • Контейнер Docker : Es una instancia en ejecución de un docker изображение. Puede haber mucos increenedores ejecutándose en base a la misma Imagen.

“Contenerizar” в Angular App

Para Motivos de Este Post, yo Estoy suponiendo que usted ya tiene instalado npm y angular cli, siendo así, vamos a crear ungular app.

Нг Новый угловой докер

ОК, Vamos A Crear Un Dockerfile y Se Tiene Que Guardar Dentro de Nuestra Carpeta Угловой докер Анкет Эсте Архиво Нет Tiene extensión y se llama dockerfile. Continuación Agregar El Siguiente Código A Dockerfile:

FROM node:latest as node

ARG ENV=prod
ARG APP=angular-docker

ENV ENV ${ENV}
ENV APP ${APP}

WORKDIR /app
COPY ./ /app/

# Instala y construye el Angular App
RUN npm ci
RUN npm run build --prod
RUN mv /app/dist/${APP}/* /app/dist/

# Angular app construida, la vamos a hostear un server production, este es Nginx

FROM nginx:1.13.8-alpine

COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf

ОК, Хаста Аквин Мью Линдо и Тодо Pero Que Rayos targita Lo Que Está en el dockerfile?

От узла: последний как узел : Las aplicaciones de angular necesitan Узел и npm para instalar suse degyencias, de igual forma podrías usar ярм Перо Эсто Серия Отра История. Entonces, acá lo que estamos haciendo esar la última version de node, la cual guardemos en una Капа Узел ламады (Puedes Escoger Cualquier Nombre).

Workdir/App : Este Besitece El Directorio de Trabajo para nuestro código en la Imagen, es utilizado por todos locamandos задние Копия , Запустить y CMD Анкет

Копия .//приложение/ : Este Comando Copia Todos Los Archivos Sastintes en el proyecto a la carpeta /приложение de Nuestra Imagen de Docker.

Запустить NPM CI : Эль Командо NPM CI tiene la misma funcionalidad de instalar devidencias como NPM Установка Pero A Diferencia, Que npm ci Primero Borra La Carpeta node_modules , luego instala las версии exatas de las delyencias del proyecto usando el package.json.lock . Este Comando Es Recomendando Cuando estás Trabajando Con Herramientas de Ci/Cd Como Travis, Jenkins, Concourse.

Запустите сборку NPM Run -Под : Эль Командо сборка Crea una nueva carpeta llamada расстояние PARA SU DISTRIBUCION. Эстос Сон Лос Архивос Кесаподемос Алоджар и Сервиду Сервиду и Кеса Нюэсттра Апликацион Агулярная Каргара. Эль -флаг -Под Crear una ersión más Optimizada y Pequeña de Nuestra App.

Запустите MV/APP/DIST/$ {APP}/*/APP/DIST/DIST/ : Movemos todo lo creado por el comando передняя en la carpeta App/Dist Анкет

Hasta Acá, Nuestra Imagen ya contiene la ersión mas optimizada de nuestro proyecto, pero no basta cono, recipemos que angular es solo html, css y js, necesita un server/proxy para poder hostearse y serceble para los usuarios. MI Server Facebook Para Aplicaciones Web, Es nginx.

От Nginx: 1.13.8-Alpine : En Este Comando Vamos A Crear Una Segunda Capa, La Cual Contiene La Versión 1.13.8-альпийно de nginx Анкет

Copy/app/dist//usr/share/nginx/html : En Este Comando Sucede Moga Magia, Como Decimos en Costa Rica, Пеле Эль Оджо Анкет Vamos a tomar los contenidos de la carpeta App/dist/ Generados En La Primer Capa Llamada Узел y Los Vamos A Muver Al папка /usr/share/nginx/html De Nuestro Server Nginx. Acá estamos viendo la Magia de los многоэтапные де Докер.

Копировать ./nginx.conf/etc/nginx/conf.d/default.conf : Por último, Solamente copiamos un archivo de configuración de nginx en el folder del compenedor. Les dejo el Link de mi configuración https://github.com/gelopfalcon/kubernetes-fundamentals/blob/master/contact-list-master/nginx.conf

Construir la Imagen

Docker Build -t My-Angular-Docker.

Эль -Командо передний №. Podemos Asegurarnos de Que Esesta, Usando Docker Images La Cual Desplega Las Imagenes Que Hemos Creado O Descargado de Algún Registry.

Construir Compenedor

Docker Container Run -p 8080: 80 -имя MyApp My-Angular-Docker Анкет

Estamos creando un контейнер Ламадо MyApp en base a la Imagen My-Angular-Docer Анкет

-p 8080: 80 : Nuestro контейнер Necesita ser accesable fuera de Docker. Engines Las Sodicitudes Hechas Por El Puerto 8080 De Nuestro Server Host, Cerán Escuchadas Por El Puerto 80 De Nuestro Container. Recordemos que nuestro intainer MyApp Tiene Un Server Nginx Con Un Angular Hosted, La Cual Es ocseable por el 80.

Asegúrese Que Su Container está funcionando reforramente, Docker PS Mostrará Los Containers Corriendo y Статус SUS. Bueno, si no Hay ningún Проблема, Abrir Tu Browser Famousto y Acceder A TU Container http://localhost: 8080 Анкет

Si Quieres Detener El Container Solo Debes Docker Stop Para Nuestro Caso Sería Docker Stop MyApp , Una Vez Detenido El Container, No Deberías Ser Capaz de Acceder Tu App Desde El Browser, Hasta Que Vuelvas Activarlo. Para Hacer Eso, Basta Con Docker Start MyApp Анкет

Gracias Por Su Atención, Estamos haciendo un Gran esfuerzo para que la comunidad hispano-parlante también pueda colaborar con contenidos. Los Invito A Seguirme en Twitter Y También En Comunidades Como GDG Pura Vida Donde Refortummente Se Hacen Evoyos Gratuitos para la comunidad.

Оригинал: “https://dev.to/gelopfalcon/angular-docker-really-56in”