一千萬個為什麽

搜索

什麽是用於創建圖像的設計模式?



在面向對象編程(OOP)中有設計模式(DP)。 DP是解決某些問題的最佳實踐。例如,單身人士可以使用在記錄器類中

如何應用DP來創建圖像,例如泊塢窗。在我們的情況下,我們有核心,即應用程序,應用程序配置(每個客戶的自定義),以及每個客戶的不同工件。

目前,使用的bash腳本包含各種if-else語句,並且越來越多的意大利面條。

轉載註明原文: 什麽是用於創建圖像的設計模式?

一共有 1 個回答:

The general design pattern is one container = one running service - see the initial comment at https://docs.docker.com/config/containers/multi-service_container/

現在,花了大約一年時間開發一個主要依靠docker的多服務應用程序,這對我有用:

避免在容器內創建文件,除非它是您的存儲引擎 - 在這種情況下使用卷(由Docker推薦並且常識) - 我們使用Elasticsearch。

如果我需要多個自定義配置,我試圖從某個地方(DB,環境)加載它,或者我將配置作為卷安裝

-v config.yml:/usr/src/app/config.yml

通常,我們有一個服務=一個存儲庫,但有時您必須復制所有依賴項才能創建一個腳本。所以我們有一個存儲庫,聚合這些腳本,我用這樣的環境變量更改CMD:

CMD cd /usr/src/app && python -u $RUN_SCRIPT

It can be probably improved with a combination of ENTRYPOINT and CMD as described here http://goinbigdata.com/docker-run-vs-cmd-vs-entrypoint/

然後我們使用各種 docker-compose.yml 文件來獲取我們需要的設置。

對於某些操作(如數據庫設置),我們要麽運行一個容器,如

docker run --network ournetwork init-profiling

或者我可以在該容器內運行命令

docker run -it --network ournetwork init-profiling bash
# run_command.sh
^D

我們花了一些時間來減少容器的占地面積,它們很快就會膨脹。例如,我們為python容器使用公共基本映像。此外,只有當您為每個存儲庫/容器使用單獨的虛擬環境時, pip freeze 才有意義。

我們現在不使用swarm/kubernetes,因此我無法為此添加任何其他指南。