【轉】DELPHI開始支持LINUX DOCKER


這是詠南翻譯Marco Cantu的文章。

在過去的幾年中,將服務器端解決方案(實際上是任何類型的應用程序)部署到輕量級DOCKER而不是物理機器或虛擬機已經變得越來越普遍,因為這允許更大的靈活性(在測試方面),更好地重建相同的執行環境,以及更大的可擴展性。

隨着10.3.3版本的發布,Embarcadero正式開始支持將通用Linux應用程序部署到Docker,特別是支持部署RAD服務器。             

在這篇文章中,我將介紹Docker和Docker Hub,以及如何輕松地將Linux應用程序部署到Docker。在第二篇博客文章中,我將特別關注RAD服務器的部署。我們也將很快有一份關於這個主題的更詳細的白皮書。             

什么是Docker             

Docker是一個操作系統級的虛擬化環境,允許在容器文件中打包和交付軟件包。容器文件由Docker引擎執行,多個容器可以在同一個Linux系統上安裝並同時運行。每個容器中都有一個操作系統級的虛擬化環境。容器比虛擬機更輕,因為它們由Docker引擎運行。容器是通過將一組稱為Dockerfile的指令構建到容器鏡像中來創建的。容器鏡像隨后在Docker引擎上執行。生成步驟和運行步驟都可以采用許多參數來配置特定的生成或運行容器鏡像。此外,現有的容器鏡像可以用作內部的起點,它允許您在現有容器鏡像的功能的基礎上添加新功能。容器和docker的信息來源很多,一個好的起點是https://www.docker.com/。

什么是Docker Hub?             

Docker提供一項服務,允許開發者和發布者向公眾或他們的團隊分發Docker鏡像。這項服務被稱為Docker Hub,它為用戶提供了一種使用特定Docker鏡像所在存儲庫的方法。Docker存儲庫還允許Docker鏡像版本控制。Docker Hub包含官方鏡像,比如Ubuntu鏡像,可以作為很多用戶的起點。             

RAD Studio Docker容器             

RAD Studio Docker容器paserver、pa radserver和pa radserver ib可以直接從DockerHub獲得,也可以作為Dockerfiles(在GitHub上)和其他助手實用程序。當使用Docker從DockerHub中提取容器時,必須在容器名稱前面加上組織名稱,例如radstudio/pa Server、radstudio/pa radserver和radstudio/pa-radserver-ib。對於這篇博客文章,我將開始關注第一篇文章radstudio/paserver,它不包括RAD Server。Docker容器有許多不同的參數,可以在啟動實例時傳遞給Docker引擎。另外,在構建和運行Docker鏡像時,可以定義自定義的構建和運行參數。我們提供的腳本中包含了許多自定義參數,例如PAServer的密碼。Docker容器實例可以在前台運行,您可以在前台與實例中運行的應用程序交互,也可以在后台分離運行,后者的行為類似於服務。Docker容器實例默認情況下不會在運行之間存儲對實例的任何更改(它們是臨時鏡像)。但是,您可以在Docker實例中設置一個持久卷,它將存儲Docker容器實例運行之間的更改。Docker實例中的目錄可以裝載到卷上,並且在Docker實例運行期間,該目錄中所做的任何更改都會在卷上持久。             

如何在Linux上安裝Docker             

Docker系統可以通過多種方式進行安裝,其中之一是使用Ubuntu操作系統中包含的APT包管理器來安裝,要使用APT安裝Docker,只需使用sudo或超級用戶帳戶以提升的權限運行APT install命令。             

----------
#if using sudo
sudo apt install docker.io 

#if using super user account
apt install docker.io

----------

PAServer Docker鏡像             

PAServer Docker鏡像使用Ubuntu:Bionic作為基礎鏡像,並在此基礎上構建包括PAServer工具及其功能的鏡像,PAServer工具是從Embarcadero服務器下載的。此鏡像包含PAServer及其所有依賴項,以及用於使用BroadwayD的GTK+框架(FMXLinux庫的一個特性部分,用於在Linux上構建ui,該庫隨Delphi免費提供)。BroadwayD可以通過HTML5和websockets在web上顯示GTK+應用程序。將這兩個工具放在同一個Docker容器上,允許開發人員使用PAServer部署控制台和基於圖形用戶界面的應用程序,並通過BroadwayD服務器通過web瀏覽器查看圖形用戶界面應用程序。此鏡像有幾個參數,包括PAServer密碼,可以設置為build參數或run參數是否要在前台交互模式(-it)或分離模式(-d)下運行外部PAServer端口(即映射到容器中PAServer端口的主機端口)和broadwayd端口重新映射              PAServer的默認密碼設置為'embtdocker'這是一個如何下載鏡像並使用幾個參數啟動鏡像的示例:             

----------
docker pull radstudio/paserver
docker run -it -e PA_SERVER_PASSWORD=securepass -p 64211:64211 -p 8082:8082 radstudio/paserver
----------

此時,您可以通過docker鏡像的主機IP和RAD Studio IDE中的端口地址來引用docker鏡像,並通過docker鏡像托管的PAServer部署和運行Linux應用程序。因此,Delphi應用程序將在docker下運行。

GitHub上的Dockerfile             

不用從docker hub中提取鏡像,您可以使用我們已經構建並在GitHub上提供的腳本創建一個自定義鏡像。PAServer Dockerfile包含Docker在構建時用於創建Docker鏡像的指令。Dockerfile依賴於從Embarcadero下載的特定版本的PAServer,可從以下網址獲得:              https://github.com/Embarcadero/paserver-docker

更多的內容馬上到來,在下一篇博文中,我們將繼續關注通過docker部署RAD服務器,這是Embarcadero支持docker容器的關鍵原因。            


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM