首页 > web前端 > js教程 > 正文

如何使用 Docker 和 Encore 将后端应用程序部署到 DigitalOcean

Barbara Streisand
发布: 2024-10-24 03:59:02
原创
596 人浏览过

How to deploy a backend application to DigitalOcean using Docker and Encore

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

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!