Docker составить заказ на сборку - PullRequest
0 голосов
/ 09 февраля 2020

У меня проблема с docker составить и построить порядок. Ниже приведен мой dockerfile для запуска моего приложения. net

enter image description here

Как вы можете видеть в процессе сборки, я запускаю несколько тестов, используя "RUN" do tnet test backend_test / backend_test.csproj "

Для этих тестов требуется наличие базы данных mongodb.

Я пытаюсь разрешить эту зависимость с помощью docker -compose и его зависимости "on_on" особенность, см. ниже.

enter image description here

Однако, похоже, это не работает, так как при запуске «docker -compose up» я получаю следующее:

enter image description here

Время ожидания тестов истекает, так как mongodb отсутствует.

Влияет ли зависимость_ на порядок сборки вообще или влияет только на порядок запуска (т. е. собирает все вырученные средства для запуска в правильном порядке)?

Есть ли другой способ сделать это? (Я хочу, чтобы тесты запускались как часть моего окончательного приложения)

Ты заранее, дай мне знать, если тебе нужна дополнительная информация

1 Ответ

1 голос
/ 09 февраля 2020

Как вы уже догадались, depends_on предназначен только для порядка выполнения, а не для сборки - он просто влияет на docker-compose up и docker-compose stop.

Я настоятельно рекомендую вам сделать все строит независимо друг от друга. Возможно, вам нужно рассмотреть отдельные образы компоновщика и среды выполнения и / или использовать CI на основе Docker (Gitlab, Travis, Circle et c), чтобы эти зависимости были доступны для тестирования.

Примечание также , depends_on часто разочаровывает людей - поскольку он просто ожидает запуска Docker до конца sh, , а не запуска приложения . Таким образом, ваша БД / служба / что-либо еще может запускаться, когда контейнер, который зависит от его запуска, начнет использовать его, вызывая тайм-ауты и т. Д. c. Вот почему HEALTH_CHECK теперь существует (с аналогичной функцией healthcheck в Docker Compose )

...