Logo

dev-resources.site

for different kinds of informations.

Dockerando una aplicaci贸n de Angular

Published at
12/12/2024
Categories
angular
espanol
docker
Author
ulisesserranop
Categories
3 categories in total
angular
open
espanol
open
docker
open
Author
14 person written this
ulisesserranop
open
Dockerando una aplicaci贸n de Angular

En este post vamos a crear un contenedor para correr una aplicaci贸n de Angular para desarrollo. Angular es uno de los marcos de trabajo m谩s famosos del mundo, hago este post para ayudar a los equipo de desarrollo que est茅n migrando sus proyectos a contenedores.

En el equipo que desarrollo hicimos el paso decidimos hacer este contenedor porque a pesar de tener las mismas dependencias instaladas y las mismas versiones tanto de Angular como de NodeJS ten铆amos comportamientos no esperados. Es por ello que se decidi贸 crear un contenedor para que todo sea absolutamente todo lo mismo. En el pr贸ximo articulo les voy ayudar a crear una imagen personalizada para ambiente productivo.

Regularmente a mi me gusta ocupar dos archivos de configuraci贸n

  • dev.Dockerfile
  • docker-compose.override.yml

El primero regularmente lo ocupa para la personalizaci贸n de la imagen base y agregar capas personalizadas a la misma de acuerdo con mis necesidades. Y el otro archivo regularmente lo ocupo para configurar los vol煤menes persistentes y tambi茅n los puertos que van a estar expuesto.

A continuaci贸n muestro el contenido del archivo de dev.Dockerfile, regularmente debe de estar a nivel de proyecto, como se muestra a continuaci贸n:

Estructura de proyecto de ejemplo ignorar el archivo docker-compose.yml
Estructura de proyecto

Contenido de dev.Dockerfile

FROM node:20.10.0

RUN mkdir -p /app

WORKDIR /app

COPY ["app-angular/package.json", "app-angular/package-lock.json", "/app/"]

COPY ["app-angular", "/app/"]

RUN npm install -g @angular/cli @angular-devkit/build-angular && npm install

CMD ["npm", "run", "start"]
Enter fullscreen mode Exit fullscreen mode

Las lineas se describen a continuaci贸n:

  1. La primera parte es el nombre de la imagen de node puedes optar por la completa o por alguna versi贸n de Alpine Linux que regularmente son mucho mas ligeras lo cual agiliza el proceso de despliegue cuando se hace por medio de pipelines.
  2. Creamos una carpeta dentro de contenedor a nivel de raiz en donde se van a almacenar los archivos de nuestro proyecto.
  3. Establecemos el directorio en donde nos queremos mover y en donde se ejecutaran los comandos siguientes.
  4. Se copian los archivos de configuraci贸n de NPM (package.json y package-lock.json) que se encuentran dentro de la carpeta app-angular dentro del contenedor.
  5. Se copian todos los archivos que se encuentran dentro de la carpeta del proyecto de app-angular dentro del contenedor.
  6. Se instalan las dependencias que est谩n configuradas dentro del contenedor.
  7. Se corre el proyecto dentro del contenedor.

Todos los pasos anteriores deber铆amos de tener una imagen lista para poder ocupar con nuestro archivo de docker-compose.yml

Contenido del archivo de docker-compose.yml

name: angular-project

services: 
  angular-container:
    build:
      context: .
      dockerfile: dev.Dockerfile
    ports:
      - "4200:4200"
    volumes:
      - ./app-angular:/app
      - /app/node_modules
Enter fullscreen mode Exit fullscreen mode

El archivo de configuraci贸n de docker-compose.yml es importante porque yo regularmente lo ocupo para configurar puertos y vol煤menes persistentes. Ocupo este archivo porque es sencillo modificar y bastante visual.

  1. La primera linea es el nombre del stack
  2. El segmento de build es importante porque ah铆 se especifica cual es el documento de Dockerfile que se va ocupar.
  3. En el segmento de ports se especifica cual es el puerto que se va exponer en tu localhost. El puerto de la izquierda es de tu host o computadora y del lado derecho es el del contenedor, no necesariamente deben de coincidir.
  4. Se configura un volumen, este volumen es para que todos los archivos dentro de app-angular si son modificados se vean reflejados autom谩ticamente en el contenedor. El segundo es para decir que ignore la carpeta de node_modules y no la sincronice con el host.

Teniendo estos dos archivos ahora solo se debe de ejecutar el siguiente comando:

docker-compose up -d --build
Enter fullscreen mode Exit fullscreen mode

Este comando har谩 que no solo se cree la imagen a partir del dev.Dockerfile sino que tambi茅n corra la imagen con las configuraciones del docker-compose.yml

espanol Article's
30 articles in total
Favicon
Las claves para NO romperlo TODO: Branches en Git 馃毃馃攽
Favicon
隆Primeros pasos en GIT! GIT para PRINCIPIANTES
Favicon
Dockerando una aplicaci贸n de Angular
Favicon
Resolviendo Preguntas Determin铆sticas con IA Generativa: Un Enfoque Pr谩ctico
Favicon
Comprendiendo la copia profunda en JavaScript
Favicon
Cursor Ai: Gracias, pero no gracias.. todav铆a
Favicon
Renderizaci贸n Din谩mica de Componentes en Vue 3 y Nuxt 3: Gu铆a Pr谩ctica y Caso Real
Favicon
Exportar tabla con JQuery
Favicon
GPS Visualizer
Favicon
C贸mo scrapear art铆culos de prensa en pocos clics
Favicon
S茅 ese profesional
Favicon
Configurar Solana en Linux
Favicon
Iniciar sesion en mongodb con usuario y contrase帽a | Mongodb
Favicon
Conectar con ssh de mac a ubuntu
Favicon
Introducci贸n a Typescript: 驴Huir o Abrazarlo con Pasi贸n?"
Favicon
Android Studio
Favicon
Dev.to en espa帽ol
Favicon
Pruebas Est谩ticas vs Unitarias vs Integraci贸n vs E2E para Aplicaciones Frontend
Favicon
Artix Linux - Instalacion
Favicon
驴Por Qu茅 Aprender Linux Es Tu Prioridad #1?
Favicon
Configurar git con GitHub
Favicon
Carpetas doble de OneDrive (Windows 10)
Favicon
Problemas al cambiar la ubicacion predeterminada de carpetas en Windows 10
Favicon
Configurando neovim
Favicon
驴C贸mo crear un Carrusel con Next y Chakra UI?
Favicon
Interactuar con contratos en Ethereum
Favicon
Mejora tu productividad como desarrollador: Window Managers
Favicon
SwiftUI Desde Abajo
Favicon
Minitutorial Django: Enviar correo con gmail
Favicon
Tutorial Android Studio: Obtener token de mi dispositivo

Featured ones: