如何将Gatsby应用程序部署到DigitalOcean应用程序平台
作为 Write for DOnations 计划的一部分,作者选择了 /dev/color 来接受捐赠。
介绍
在本教程中,您将部署一个 Gatsby 应用程序到 DigitalOcean 的 App Platform。 App Platform 是一个 平台即服务 ,它可以自动构建、部署和管理应用程序。 当与像 Gatsby 这样的 静态站点生成器 的速度相结合时,这提供了一个不需要服务器端编程的可扩展 JAMStack 解决方案。
在本教程中,您将在本地机器上创建一个示例 Gatsby 应用程序,将您的代码推送到 GitHub,然后部署到 App Platform。
先决条件
- 在您的本地机器上,您将需要一个运行 Node.js 的开发环境; 本教程在 Node.js 版本 14.16.0 和 npm 版本 6.14.11 上进行了测试。 要在 macOS 或 Ubuntu 20.04 上安装它,请按照 如何在 macOS 上安装 Node.js 和创建本地开发环境中的步骤或 的 使用 PPA 部分安装如何在 Ubuntu 20.04 上安装 Node.js。
- Git 安装到您的本地计算机上。 您可以按照教程 贡献开源:Git 入门 在您的计算机上安装和设置 Git。
- GitHub 上的一个帐户,您可以通过转到 创建您的帐户页面 来创建该帐户。
- 一个 DigitalOcean 帐户。
- Gatsby CLI 工具 下载到您的本地计算机上。 您可以在如何设置您的第一个 Gatsby 网站 教程的 步骤 1 中了解如何执行此操作。
- 了解 JavaScript 将很有用。 您可以在我们的 如何在 JavaScript 中编码系列 中了解有关 JavaScript 的更多信息。 您无需了解 React 即可开始使用,但熟悉基本概念会有所帮助。 你可以通过这个系列how-to-code-in-react-js学习React。
第 1 步——创建 Gatsby 项目
在本节中,您将创建一个示例 Gatsby 应用程序,稍后将其部署到 App Platform。
首先,从 GitHub 克隆默认的 Gatsby 启动器。 您可以在终端中使用以下命令执行此操作:
git clone https://github.com/gatsbyjs/gatsby-starter-default
Gatsby 入门站点为您提供了开始编写应用程序所需的样板代码。 有关创建 Gatsby 应用程序的更多信息,请查看 如何设置您的第一个 Gatsby 网站 。
完成克隆 repo 后,将 cd
放入 gatsby-starter-default
目录:
cd gatsby-starter-default
然后安装 Node 依赖项:
npm install
下载应用程序并安装依赖项后,在文本编辑器中打开以下文件:
nano gatsby-config.js
您刚刚打开了 Gatsby 的配置文件 。 您可以在此处更改有关您网站的元数据。
转到 title
键并将 Gatsby Default Starter
更改为 Save the Whales
,如以下突出显示的行所示:
gatsby-starter-default/gatsby-config.js
module.exports = { siteMetadata: { title: `Save the Whales`, description: `Kick off your next, great Gatsby project with this default starter. This barebones starter ships with the main Gatsby configuration files you might need.`, author: `@gatsbyjs`, }, plugins: [ `gatsby-plugin-react-helmet`, { resolve: `gatsby-source-filesystem`, options: { name: `images`, path: `${__dirname}/src/images`, }, }, `gatsby-transformer-sharp`, `gatsby-plugin-sharp`, { resolve: `gatsby-plugin-manifest`, options: { name: `gatsby-starter-default`, short_name: `starter`, start_url: `/`, background_color: `#663399`, theme_color: `#663399`, display: `minimal-ui`, icon: `src/images/gatsby-icon.png`, // This path is relative to the root of the site. }, }, // this (optional) plugin enables Progressive Web App + Offline functionality // To learn more, visit: https://gatsby.dev/offline // `gatsby-plugin-offline`, ], }
关闭并保存文件。 现在在您喜欢的文本编辑器中打开索引文件:
nano src/pages/index.js
要继续“拯救鲸鱼”主题,请将 Hi people
替换为 Adopt a whale today
,将 Welcome to your new Gatsby site.
更改为 Whales are our friends.
,并删除最后的 [X135X ] 标签:
gatsby-starter-default/src/pages/index.js
import React from "react" import { Link } from "gatsby" import { StaticImage } from "gatsby-plugin-image" import Layout from "../components/layout" import SEO from "../components/seo" const IndexPage = () => ( <Layout> <SEO title="Home" /> <h1>Adopt a whale today</h1> <p>Whales are our friends.</p> <StaticImage src="../images/gatsby-astronaut.png" width={300} quality={95} formats={["AUTO", "WEBP", "AVIF"]} alt="A Gatsby astronaut" style={{ marginBottom: `1.45rem` }} /> <Link to="/page-2/">Go to page 2</Link> <br /> <Link to="/using-typescript/">Go to "Using TypeScript"</Link> </Layout> ) export default IndexPage
保存并关闭文件。 您将用鲸鱼的 GIF 替换 Gatsby 宇航员图像。 在添加 GIF 之前,您首先需要创建一个 GIF 目录并下载它。
进入src
目录,创建gifs
文件:
cd src/ mkdir gifs
现在导航到您新创建的 gifs
文件夹:
cd gifs
从 Giphy 下载 a 鲸鱼 GIF:
wget https://media.giphy.com/media/lqdJsUDvJnHBgM82HB/giphy.gif
Wget 是一个允许您从 Internet 下载文件的实用程序。 Giphy 是一个托管 GIF 的网站。
接下来,将名称从 giphy.gif
更改为 whales.gif
:
mv giphy.gif whales.gif
更改 GIF 的名称后,回到项目的根文件夹并再次打开索引文件:
cd ../.. nano src/pages/index.js
现在您将把 GIF 添加到您网站的主页。 删除 StaticImage
导入和元素,然后替换为以下突出显示的行:
gatsby-starter-default/src/pages/index.js
import React from "react" import { Link } from "gatsby" import whaleGIF from "../gifs/whales.gif" import Layout from "../components/layout" import SEO from "../components/seo" const IndexPage = () => ( <Layout> <SEO title="Home" /> <h1>Adopt a whale today</h1> <p>Whales are our friends.</p> <div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}> <img src={whaleGIF} alt="Picture of Whale from BBC America" /> </div> <Link to="/page-2/">Go to page 2</Link> <br /> <Link to="/using-typescript/">Go to "Using TypeScript"</Link> </Layout>
在这里,您导入了鲸鱼 GIF 并将其包含在 <div>
元素之间的图像标签中。 alt
标签告知读者 GIF 的来源。
关闭并保存索引文件。
现在,您将在本地运行您的网站以确保其正常工作。 从项目的根目录运行开发服务器:
gatsby develop
在您的站点完成构建后,将 localhost:8000
放入浏览器的搜索栏中。 您将在浏览器中找到以下呈现的内容:
在本节中,您创建了一个示例 Gatsby 应用程序。 在下一节中,您将把代码推送到 GitHub,以便 App Platform 可以访问它。
第 2 步 — 将代码推送到 GitHub
在本教程的这一部分中,您将提交代码到 git
并将其推送到 GitHub。 从那里,DigitalOcean 的应用平台将能够访问您网站的代码。
转到项目的根目录并创建一个新的 git 存储库:
git init
接下来,将任何修改过的文件添加到 git:
git add .
最后,使用以下命令将所有更改提交到 git:
git commit -m "Initial Commit"
这会将您的应用程序的这个版本提交给 git 版本控制。 -m
接受一个字符串参数并将其用作有关提交的消息。
注意:如果你之前没有在这台机器上设置过git,你可能会收到如下输出:
*** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository.
在继续之前运行两个 git config
命令以提供此信息。 如果您想了解有关 git 的更多信息,请查看我们的 如何为开源做出贡献:Git 入门 教程。
您将收到如下输出:
Output[master 1e3317b] Initial Commit 3 files changed, 7 insertions(+), 13 deletions(-) create mode 100644 src/gifs/whales.gif
提交文件后,转到 GitHub 并登录。 登录后,创建一个名为gatsby-digital-ocean-app-platform的新存储库。 您可以将存储库设为私有或公开:
创建新仓库后,返回命令行并添加远程仓库地址:
git remote set-url origin https://github.com/your_name/gatsby-digital-ocean-app-platform
确保将 your_name
更改为您在 GitHub 上的用户名。
接下来,声明您要使用以下内容推送到 main
分支:
git branch -M main
最后,将您的代码推送到新创建的存储库:
git push -u origin main
输入凭据后,您将收到类似于以下内容的输出:
OutputCounting objects: 3466, done. Compressing objects: 100% (1501/1501), done. Writing objects: 100% (3466/3466), 28.22 MiB | 32.25 MiB/s, done. Total 3466 (delta 1939), reused 3445 (delta 1926) remote: Resolving deltas: 100% (1939/1939), done. To https://github.com/your_name/gatsby-digital-ocean-app-platform * [new branch] main -> main Branch 'main' set up to track remote branch 'main' from 'origin'.
您现在可以在您的 GitHub 帐户中访问您的代码。
在本节中,您将代码推送到远程 GitHub 存储库。 在下一部分中,您将把 Gatsby 应用从 GitHub 部署到应用平台。
第 3 步 — 在 DigitalOcean 应用平台上部署您的 Gatsby 应用
在这一步中,您将把您的应用程序部署到 DigitalOcean 应用程序平台上。 如果您还没有这样做,请创建一个 DigitalOcean 帐户。
打开您的 DigitalOcean 控制面板,选择屏幕顶部的 Create 按钮,然后从下拉菜单中选择 Apps:
选择 Apps 后,您将从 GitHub 检索您的存储库。 单击 GitHub 图标并授予 DigitalOcean 访问您的存储库的权限。 最好只选择要部署的存储库。
您将被重定向回 DigitalOcean。 进入Repository字段,选择你要部署的项目和分支,然后点击Next:
注意: 在 Branch 下面有一个预先选中的框,上面写着 Autodeploy code changes。 这意味着如果您将任何更改推送到 GitHub 存储库,DigitalOcean 将自动部署这些更改。
在下一页上,您将被要求配置您的应用程序。 在你的情况下,所有的预设都是正确的,所以你可以点击Next:
完成应用程序的配置后,给它起一个类似 save-the-whales 的名称:
选择您的姓名并单击下一步后,您将进入付款计划页面。 由于您的应用是静态站点,您可以选择 Starter 计划,该计划是免费的:
现在单击 Launch Starter App 按钮。 等待几分钟后,您的应用程序将被部署。
导航到应用标题下方列出的 URL。 您会发现您的 Gatsby 应用程序已成功部署。
结论
在本教程中,您使用 GIF 创建了一个 Gatsby 站点并将该站点部署到 DigitalOcean 应用平台 。 DigitalOcean App Platform 是部署和共享 Gatsby 项目的便捷方式。 如果您想了解更多关于该产品的信息,请查看应用平台的官方文档。