?本指南向您展示如何使用新的 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 的注册表的方法:
doctl registry login
登录后复制
登录后复制
登录后复制
登录后复制
为此,您需要 DigitalOcean CLI,可以从 DigitalOcean CLI 文档安装它。
-
标记您的 Docker 镜像:
标记您的图像以匹配注册表的 URL。
encore app create myapp
登录后复制
登录后复制
登录后复制
登录后复制
encore build docker myapp
登录后复制
登录后复制
登录后复制
登录后复制
步骤3:将Docker镜像部署到DigitalOcean应用平台
第 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 镜像:
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中文网其他相关文章!