簡體   English   中英

如何從 bash 腳本退出 postgres docker 容器

[英]How to exit a postgres docker container from a bash script

我有一個 docker-compose.yml 配置為創建數據並將其添加到數據庫。 然后我的撰寫文件加載到 bash 腳本中,該腳本將對數據運行一些簡短的測試,並在測試失敗時退出 1。 這按預期工作,但是當我希望我的容器在所有測試通過但 docker-entrypoint.sh 腳本似乎忽略我的 exit 0 命令時退出。 我試圖編寫一個不同的入口點腳本,它將調用 docker-entrypoint.sh,希望我可以退出容器,但我沒有任何運氣。 有沒有簡單的方法來實現這個?

Output 示例:

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

這是正常的; 入口點將忽略任何命令,要解決此問題,您可以在 Dockerfile 中的入口點聲明后使用 CDM 參數。 例如,Dockerfile 中的以下代碼段

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

當容器運行時

docker run -it <image> 

將產生 output:

你好世界

但是當容器運行時

docker run -it <image> John

將導致:

你好約翰

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM