Me encuentro en la situación de que quiero deshabilitar un servicio temporalmente en un docker-compose
archivo.
Por supuesto que podría comentarlo, pero ¿hay alguna opción para decir " enabled: false
"?
docker
docker-compose
Mandragor
fuente
fuente
docker-compose up
, se iniciarán todos los servicios por defecto. Sin embargo, si lo ejecutadocker-compose up myservice
, se iniciará mi servicio y las cosas que dependen de él. Al configurar las dependencias, puede hacer que el servicio defectuoso no comience con este comando. También puede hacerdocker-compose run
para obtener solo los servicios que desea. La elección correcta también puede ser dividir esto en varios archivos de redacción para permitirle la flexibilidad que necesita.--no-deps
en caso de que no desee iniciar las dependencias. Sé que no es lo que estás buscando, pero es al revés.docker-compose -f docker-compose.yml -f another-docker-compose.yml up -d
. Puede verificar la combinación de compose de docker resultante con el comando de configuración :docker-compose -f docker-compose.yml -f another-docker-compose.yml config
Respuestas:
Simplemente podría redefinir el
entrypoint
ocommand
para reemplazar dicho comando con algo que no hace nada (/bin/true
)Eso haría que el contenedor saliera inmediatamente, sin hacer nada.
shadi agrega los siguientes consejos en los comentarios:
5andr0 señala en los comentarios la sección de nivel superior
x-disabled:
(una extensión similar a un campo)fuente
restart: "no"
para evitar reinicios infinitosx-disabled:
lugar deservices:
Puedes hacerlo en un
docker-compose.override.yaml
archivo.Este archivo se lee automáticamente
docker-compose
y se fusiona con el archivo principaldocker-compose.yaml
.Si lo tiene excluido de Git, cada desarrollador puede modificar la configuración (con algunas limitaciones) sin cambiar el original
docker-compose.yaml
.Por lo tanto, el servicio
foo
se puede deshabilitar ad-hoc redefiniendo su punto de entrada endocker-compose.override.yaml
:fuente
export XXX_ENTRYPOINT=/bin/true
luego `entrypoint: [" $ {XXX_ENTRYPOINT: -docker-entrypoint.sh} "]`Agrego la siguiente línea adicional al servicio que quiero deshabilitar temporalmente:
Empieza de todos modos, pero no hace nada.
fuente
command
no tiene ningún efecto en el punto de entrada. En su ejemplo usted confía que elentrypoint
esbash
supongo. Para hacer esto resistente ((independiente del integradoentrypoint
), creo que debe redefinir el punto de entrada, no el comando.No hay forma de deshabilitar un servicio definido en Docker compose yaml file. La sugerencia de VonC es una buena solución. Consulte a continuación la documentación de la ventana acoplable redactar para conocer las opciones disponibles https://docs.docker.com/compose/compose-file/
fuente
Escalaría el servicio a 0 réplicas con: deploy: réplicas: 0
Desafortunadamente, como dice la documentación, esto solo funciona con docker swarm.
fuente
Lo tengo:
fuente
Primitivo pero agregue un
#
al principio de cada línea del servicio.fuente