Сейчас наши агенты Jenkins генерируют docker-compose.yml для каждого из наших проектов Rails, а затем запускают сборку докеров. У docker-compose.yml есть основной "веб-контейнер", в котором есть rbenv и все наши другие Rails-зависимости внутри. Он связан с контейнером DB, который содержит тестовую базу Postgres.
Проблема возникает, когда нам нужно фактически запускать тесты и генерировать коды выхода. Наш CI-сервер будет развертываться только в том случае, если тест script возвращает выход 0, но docker-compose всегда возвращает 0, даже если одна из команд контейнера терпит неудачу.
Другая проблема заключается в том, что контейнер DB работает неограниченно, даже после того, как веб-контейнер завершен, поэтому docker-compose up
никогда не возвращается.
Есть ли способ, которым мы можем использовать docker-compose для этого процесса? Нам нужно будет иметь возможность запускать контейнеры, но выходить после завершения веб-контейнера и возвращать его код завершения. Прямо сейчас мы застреваем вручную, используя докер, чтобы развернуть контейнер БД и запустить веб-контейнер с опцией -link.