Как выйти из контейнера postgres docker из скрипта bash - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть docker -compose.yml, настроенный для создания и добавления данных в базу данных. Затем мой файл compose загружается в сценарий bash, который запустит несколько коротких тестов с данными и завершит работу в случае сбоя теста 1. Это работает, как и предполагалось, однако, когда я хочу, чтобы мой контейнер завершал работу после прохождения всех тестов, но сценарий docker -entrypoint. sh, похоже, игнорирует мою команду выхода 0. Я попытался написать другой сценарий точки входа, который будет вызывать docker -входную точку. sh в надежде, что я смогу выйти из контейнера, но мне не повезло. Есть ли простой способ реализовать это?

Пример вывода:

postgres_1  | PostgreSQL init process complete; ready for start up.
postgres_1  |
postgres_1  | 2020-04-06 19:29:58.511 UTC [1] LOG:  starting PostgreSQL 12.2 (Debian 12.2-2.pgdg100+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-6) 8.3.0, 64-bit
postgres_1  | 2020-04-06 19:29:58.511 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
postgres_1  | 2020-04-06 19:29:58.511 UTC [1] LOG:  listening on IPv6 address "::", port 5432
postgres_1  | 2020-04-06 19:29:58.517 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1  | 2020-04-06 19:29:58.534 UTC [102] LOG:  database system was shut down at 2020-04-06 19:29:58 UTC
postgres_1  | 2020-04-06 19:29:58.540 UTC [1] LOG:  database system is ready to accept connections

1 Ответ

1 голос
/ 07 апреля 2020

это нормально; entrypoint будет игнорировать любую команду, для решения которой вы можете использовать параметр CDM после объявления точки входа в Dockerfile. Например, следующий фрагмент в Dockerfile

ENTRYPOINT ["/bin/echo", "Hello"]
CMD ["world"]

, когда контейнер работает как

docker run -it <image> 

, выдаст:

Hello world

, но когда контейнер работает как

docker run -it <image> John

, что приведет к:

Hello John

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...