El comando docker-compose up inicia todos los servicios de nuestro proyecto. Incluso servicios que no deseamos como herramientas ( drush, por ejemplo ) o servicios de mantenimiento esporadicos ( docker-compose run --rm ). Entonces como podemos evitar que ciertos servicios se inicien con docker-compose up ?
Existe una opcion en nuestro archivo de configuracion docker-compose.yml con la cual podemos indicar que algun(nos) servicios no esten disponibles al levantar nuestro proyecto.
Profiles en Docker Compose
Cuando declaramos un servicio dentro de nuestro archivo docker-compose.yml podemos establecer la opcion profiles y establecer a que perfiles de ejecucion pertenecera ese servicio.
version: '2'
services:
node:
image : node:14
volumes:
- .:/var/www/html
command: "npm start"
db:
image: mysql:5.7
volumes:
- ./mysql:/etc/mysql/conf.d/
- ./db_init.sql:/docker-entrypoint-initdb.d/init.sql
puppeteer:
profiles: ["puppeteer"]
build: ./puppeteer/
volumes:
- ./puppeteer/:/var/www/html/
- ./config:/var/www/html/config
command: "npm start"
En este archivo de configuracion, estamos asignando al perfil puppeteer al servicio puppeteer. Por lo tanto cuando ejecutemos el comando:
docker-compose up -d
Solo se iniciaran los servicios node y db, excluyendo el servicio puppeteer.
Si quisieramos ejecutar el servicio puppeteer debemos indicar el nombre del servicio
docker-compose run --rm puppeteer npm start
Add new comment