Ок. Когда я пишу docker-compose up -d меняю код, например зависимости проекта, делаю docker-compose run --rm ..., то он поднимет контейрен на основе образа, с которого он сделал 1 контейнер?
Смысл в том, что есть dev server, и когда кто-то что-то запушил, то нужно тесты запустить с учётом того, что кто-то мог поменять зависимости. И если тесты не прошли, то с сервером ничего не делать
Тут всё немного по-другому сделано. Тут смысл в том, что есть дев сервер, в котором может лежать код, который никогда в мастер не попадает (типо фича, которую кто-то когда-то делал, и потом отменилась). Поэтому прод и дев не одно и то же