使用 Docker 在 Linux 上运行 Delphi 应用程序
从 Rad Studio 10.2 Tokyo 开始,可以编译和运行 Linux 服务器应用程序(无用户界面)。我们将使用 Ubuntu 准备一个 docker 映像,以及通过 PAServer 在 Linux 上运行 Delphi 应用程序所需的一切。使用 Docker,我们可以将这些应用程序在 Linux 容器中部署到我们的生产系统中。
从建立一系列互连的微服务以实现高可用性和容错到单体应用程序,可能性是巨大的。使用 Docker 的优点之一是我们可以准备一个基础镜像(比使用虚拟机轻得多)并根据需要进行部署。
更新!:如果您使用的是 10.3.3 (Rio),请阅读 如何使用 RadStudio 10.3.3 在 Docker Linux 上运行 Delphi 应用程序
我们开始做吧............................
快速途径
打开安装了 Docker 的控制台。在我的例子中,我使用 Docker Toolbox for Windows 并启动 Docker Quickstart Terminal。
docker pull jaruzafa/ubuntupaserverdocker run -p 64211:64211 -t -i jaruzafa/ubuntupaserver
恭喜!你已经完成了,现在去阅读下面的 RadStudio 部分。
缓慢的途径
我们的镜像将基于 Ubuntu 16.04。创建一个名为 Dockerfile的文本文件,其中包含以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #Imagen base FROM ubuntu # Everything you need for RadStudio plus some utilities that may come in handy RUN \ apt- get -y update && \ apt- get -y upgrade && \ apt- get -y dist-upgrade && \ apt- get -y install joe wget p7zip-full curl unzip build-essential zlib1g-dev libcurl4-gnutls-dev && \ apt- get -y install mysecureshell && \ apt- get -y autoremove && \ apt- get -y autoclean # Copy PAServer to container and unzip it COPY LinuxPAServer19.0.tar.gz /root/LinuxPAServer19.0.tar.gz RUN \ cd /root && \ tar xzvf LinuxPAServer19.0.tar.gz && \ cd PAServer-19.0 && \ mkdir scratch-dir # Working directory WORKDIR /root/PAServer-19.0 # Start PAServer CMD [ "/root/PAServer-19.0/paserver" , "-password=1234" ] # Publish PAServer default port EXPOSE 64211 |
请记住将 C:\Program Files\Embarcadero\RADStudio\19.0\PAServer\LinuxPAServer19.0.tar.gz 复制到您拥有 Dockerfile 的同一文件夹中。
运行 Docker 快速入门终端并输入:
docker build -t mirepo/mimagen 。
现在您已经创建了图像。只需启动容器:
docker run -p 64211:64211 -t -i mirepo/miimagen
现在 RADStudio 方面
Hello world….
在 Rad Studio 中单击新建项目->控制台应用程序
完成代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; begin try Writeln( 'Hello world Docker/Linux ' ); except on E: Exception do Writeln(E.ClassName, ': ' , E.Message); end; end. |
在项目管理器中,右键添加Linux平台:
选择 Linux-64 位:
它将询问配置文件名称:
我写了“paserverxubuntu”,但你可以写你想要的名字。
现在到了棘手的部分,您将被要求提供 PAServer 正在侦听的 IP。您必须输入Docker 主机的 IP,而不是容器的 IP!
就我而言,我使用 Docker Toolbox for Windows,IP 为 192.168.99.100。
默认端口为 64211,密码为“1234”:
点击“运行”(第一次会复制SDK,这可能需要几分钟)
在 Docker 容器中,您将看到:
就是这样!
注意:此示例中的 Docker 映像适用于部署应用程序,但您将无法调试(断点和其他东西,您知道……),因为它不包含 RadStudio 调试器工作所需的一切。
====Code is changing the world====
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!