?本指南向您展示如何使用新的 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中文网其他相关文章!

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

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

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

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

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

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

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

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

Atom编辑器mac版下载
最流行的的开源编辑器

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