Docker compoose permite inicializar múltiples contenedores al mismo tiempo; ademas, permite automatizar la variedad de opciones que se utiliza en los comandos con docker, como por ejemplo; docker run <arguments>
Se debe utilizar el archivo docker-compose.yml en donde se puede utilizar varios comandos docker
A continuación un ejemplo de creación de dos contenedores en un archivo docker-compose.yml.
version: "3"
services:
redise-server:
image: "redis"
node-app:
build: ./app
ports:
- "8081:8083"
- Contenedor 1: Contiene la configuración de redis, en el cual se indica que se debe usar la imagen:redis
- Contenedor 2: Contiene la configuración de un servidor node, en el cual se indica que se debe usar un archivo Dockerfile ubicado en la carpeta ./app; ademas, se realiza el mapeao de los puertos 8081 (máquina local) con el puerto 8083 (Servidor node)
A continuación un ejemplo de creación de un contenedor para desarrollo de aplicación React Js
version: '3'
services:
react-web:
environment:
- CHOKIDAR_USEPOLLING=true
build:
context: .
dockerfile: Dockerfile.dev
ports:
- "3000:3000"
volumes:
- /usr/app/node_modules
- .:/usr/app
- environment: Bandera necesaria para permitir la actualización de archivos desde el contenedor con los volumenes
- build: Se debe determinar el context; es decir, el directorio actual de trabajo y el nombre del archivo docker de desarrollo con dockerfile:
- volumes: Permite la configuración de volumnes entre el contenedor y la máquina de desarrollo.
/usr/app/node_modules Indica que se va hacer uso de las librerias nodejs instaladas en el contenedor
.:/usr/app Indica que todo el contenido del directorio actual de trabajo de la máquina local, debe ser colocado en la ruta: /usr/app del contenedor
A continuación se indica la configuración del archivo Dockerfile.dev
# Base image
FROM node:16-alpine
# Work directory
WORKDIR /usr/app
# Copy package.json to work directory
COPY package.json .
# Run comands to install dependencies
RUN npm install
# Copy all the rest files
COPY . .
# Default commando for the image
CMD [ "npm", "run", "start" ]
Fuentes
Comentarios
Publicar un comentario