Quiero hacer de esto un valor predeterminado run comportamiento para algunos de los servicios que especifico en docker-compose.yml.
Entonces, las preguntas son:
¿Se puede especificar de alguna manera en docker-compose.yml?
Si puede, ¿cómo puedo hacer eso?
(INB4 " Usa alias de bash, Luke!": Por supuesto que puedo hacer cumplir esto fuera de docker-compose.yml al establecer un alias de bash como alias docker-compose-run='docker-compose run --rm' pero estoy interesado en cómo puedo hacer cumplir eso exactamente a través de docker-compose.yml, no de alguna manera externa.)
Detiene contenedores y elimina contenedores, redes, volúmenes e imágenes creados por up.
De forma predeterminada, las únicas cosas que se eliminan son:
- Containers for services defined in the Compose file- Networks defined in the networks section of the Compose file- The default network, if one is used
Las redes y los volúmenes definidos como externos nunca se eliminan.
Aunque no se puede declarar en docker-compose.yml le ahorrará algunos problemas; especialmente con volúmenes y redes.
-- rm-Retire el recipiente después de la ejecución. Ignorado en modo separado.
Ejecuta un comando de una sola vez en un servicio. Por ejemplo, el siguiente comando inicia el servicio web y ejecuta bash como su comando.
docker-compose run web bash
[...] el comando pasado por run anula el comando definido en el servicio configuración.
[...] comando no crea ninguno de los puertos especificado en la configuración del servicio. Esto evita colisiones de puertos con puertos ya abiertos. Si desea que se creen los puertos del servicio y asignado al host, especifique el -- puertos de servicio bandera
No es parte de la Dockerfile o docker-compose.yml especificación, es solo una opción de cli para el comando run, por lo que la respuesta es no. Tendrá que confiar en algo externo para hacer cumplir.
Si tiene alguna herramienta de compilación para su proyecto, generalmente es mejor envolver las tareas de docker-compose con eso. Por ejemplo, nuestros proyectos de Gradle proporcionan tareas relacionadas con docker que establecen algunas opciones predeterminadas como --rm para ejecutar tareas.