如何使用 Docker 和 Encore 将后端应用程序部署到 DigitalOcean
?本指南向您展示如何使用新的 encore 构建命令(Encore 开源 CLI 的一部分)将 Encore 应用程序部署到 DigitalOcean。
如果您更喜欢手动部署而不是 Encore 云平台提供的自动化功能,这会很方便。
即使手动部署,Encore 也可以通过提供构建和配置应用程序的工具来简化流程。⚡️
现在让我们看看如何使用 Docker 和 encore build 将 Encore 应用程序部署到 DigitalOcean 的应用程序平台。?
先决条件
- DigitalOcean 帐户:确保您拥有 DigitalOcean 帐户。如果没有,您可以在这里注册。
- 已安装 Docker:确保 Docker 已安装在本地计算机上。您可以从 Docker 网站下载。
-
Encore CLI:安装 Encore CLI:
- macOS:brew install encoredev/tap/encore
- Linux:curl -L https://encore.dev/install.sh |巴什
- Windows: iwr https://encore.dev/install.ps1 |埃克斯
- DigitalOcean CLI(可选):您可以安装 DigitalOcean CLI 以获得更大的灵活性和自动化,但这对于本教程来说不是必需的。
第 1 步:创建 Encore 应用程序
-
创建一个新的 Encore 应用:
- 如果您还没有使用 Encore CLI 创建一个新的 Encore 应用程序。
- 您可以使用以下命令来创建新应用程序:
encore app create myapp
登录后复制登录后复制登录后复制登录后复制- 选择 Hello World 模板。
- 按照提示创建应用程序。
-
构建 Docker 镜像:
- 构建 Encore 应用程序以生成用于部署的 docker 镜像:
encore build docker myapp
登录后复制登录后复制登录后复制登录后复制
步骤 2:将 Docker 镜像推送到容器注册表
要将 Docker 映像部署到 DigitalOcean,您需要将其推送到容器注册表。 DigitalOcean 支持
它自己的容器注册表,但您也可以使用 DockerHub 或其他注册表。以下是将图像推送到 DigitalOcean 的注册表的方法:
-
创建 DigitalOcean 容器注册表:
- 转到 DigitalOcean 控制面板并创建一个新的容器注册表。
- 按照说明进行设置。
登录 DigitalOcean 的注册表:
使用 DigitalOcean 提供的登录命令,如下所示:
doctl registry login
为此,您需要 DigitalOcean CLI,可以从 DigitalOcean CLI 文档安装它。
- 标记您的 Docker 镜像: 标记您的图像以匹配注册表的 URL。
encore app create myapp
- 将您的 Docker 镜像推送到注册表:
encore build docker myapp
步骤3:将Docker镜像部署到DigitalOcean应用平台
导航到应用程序平台:
前往 DigitalOcean 的应用平台。-
创建一个新应用:
- 点击“创建应用程序”。
- 选择“DigitalOcean 容器注册表” 选项。
-
选择 Docker 镜像源:
- 选择您之前推送的图片。
-
配置应用程序设置:
- 设置扩展选项:配置容器数量、CPU 和内存设置。
- 环境变量:添加您的应用程序可能需要的任何环境变量。
- 选择区域:选择靠近您的用户的区域以获得更好的性能。
-
部署应用程序:
- 点击“下一步”,检查设置,然后点击“创建资源”。
- DigitalOcean 将负责配置基础设施、拉取 Docker 映像并启动应用程序。
第 4 步:监控和管理应用程序
-
访问应用程序:
- 部署后,您将获得一个公共 URL 来访问您的应用程序。
- 测试应用程序以确保其按预期运行,例如
doctl registry login
-
查看日志和指标:
- 前往应用平台“运行时日志”选项卡查看日志
- 转到“见解”选项卡查看性能指标。
-
管理扩展和部署设置:
- 您可以更改应用程序配置,例如缩放设置、部署区域或环境变量。
第 5 步:将数据库添加到您的应用程序
DigitalOcean 的应用程序平台提供托管数据库,使您可以轻松地将数据库添加到您的应用程序。以下是如何为您的应用程序设置托管数据库:
-
导航至 DigitalOcean 控制面板:
- 进入 DigitalOcean 控制面板。
- 点击左侧边栏中的“数据库”。
-
创建新的数据库集群:
- 点击“创建数据库集群”。
- 选择PostgreSQL
- 选择数据库版本、数据中心区域和集群配置(例如,根据您的需求进行开发或生产设置)。
- 为数据库命名并根据需要配置其他设置,然后单击“创建数据库集群”。
-
配置数据库设置:
- 创建数据库后,转到数据库仪表板的“连接详细信息”选项卡。
- 复制连接字符串或个人设置(主机、端口、用户名、密码、数据库名称)。您将需要这些详细信息来将您的应用程序连接到数据库。
- 下载CA证书
-
创建数据库
- 使用DigitalOcean提供的连接字符串连接到数据库。
encore app create myapp
- 创建数据库
encore build docker myapp
-
在您的 Encore 应用程序中声明一个数据库:
- 打开 Encore 应用的代码库。
- 将 mydb 数据库添加到您的应用程序(Encore 数据库文档)
doctl registry login
-
创建 Encore 基础设施配置
- 在 Encore 应用程序的根目录中创建一个名为 infra.config.json 的文件。
- 将 CA 证书 和连接详细信息添加到文件中:
docker tag myapp registry.digitalocean.com/YOUR_REGISTRY_NAME/myapp:latest
-
设置环境变量(可选):
- 转到 DigitalOcean 应用程序平台仪表板。
- 选择您的应用程序。
- 在“设置”部分中,转到“应用程序级环境变量”
- 将数据库密码添加为名为 DB_PASSWORD 的加密环境变量。
-
构建并推送 Docker 镜像:
- 使用更新的配置构建 Docker 映像。
encore app create myapp
- 标记 Docker 镜像并将其推送到 DigitalOcean 容器注册表。
encore build docker myapp
-
测试数据库连接:
- 在 DigitalOcean 上重新部署应用程序以应用更改。
- 调用API测试数据库连接
doctl registry login
故障排除技巧
- 部署失败:检查构建日志是否有任何错误。确保 Docker 映像已正确标记并推送到注册表。
- 应用程序无法访问:验证 Dockerfile 和应用程序平台配置中是否公开了正确的端口。
- 数据库连接问题:确保数据库连接详细信息正确并且可以从应用程序访问数据库。
结论
就是这样!您已使用 Docker 成功将 Encore 应用程序部署到 DigitalOcean 的应用程序平台。?
您现在可以扩展您的应用程序、监控其性能并通过 DigitalOcean 仪表板轻松管理它。
?自己尝试一下
- 通过这些教程了解如何使用 Encore 构建应用程序。?
- 寻找使用这些开源应用程序模板构建内容的灵感。?
总结
- ⭐️ 通过在 GitHub 上加注 Encore 来支持该项目。
- ?如果您有疑问或想要分享您的作品,请加入 Discord 上 Encore 社区的开发者聚会。
以上是如何使用 Docker 和 Encore 将后端应用程序部署到 DigitalOcean的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。
