Mi situación. Intentando ejecutar una estructura docker-compose varias veces en el mismo cuadro. Este es mi docker-compose.yml :
version: '3' services: code: image: organization:java-maven links: - mysql:mysql volumes: - "${PWD}:/home/ubuntu/src" mysql: image: organization:mysql Ejecutar esto dos veces con docker-compose run code mvn clean test crea dos contenedores de code y un contenedor de mysql .
Ahora, quiero que un code esté vinculado a un mysql y otro code vinculado a otro mysql .
¿Cómo logro esto? Se supone que esto se ejecuta en esclavos jenkins y las ejecuciones maven no pueden compartir mysql.
He fallado miserablemente al intentarlo con la opción "-e KEY=VALUE" para docker-compose run junto con container_name en el archivo de composición de docker.
No estoy seguro de cómo abordar esto, por favor ayuda, gracias.
Por lo tanto, me concentré demasiado en usar directivas para modificar manualmente los nombres de los contenedores. La solución fue mucho más fácil.
docker-compose -p anything run code mvn clean test
docker-compose -p anything_else run code mvn clean test
Entonces, esta es la solución del nombre del proyecto. Docker compose utilizará el valor proporcionado con la opción -p como prefijo al crear nombres de contenedores. Eso significa que no hay colisión.
¡Muy útil!
Para leer más: documentación sobre la opción de nombre de proyecto