0

0

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

花韻仙語

花韻仙語

发布时间:2025-01-07 21:53:31

|

1202人浏览过

|

来源于php中文网

原创

daytona:一个强大的开发环境管理器,助力 astrojs 和 sanity 项目开发

最近在开发博客应用时,我通过 Quira.sh 上的 Quest 23 发现了 Daytona —— 一个功能强大的开发环境管理器。本文将探讨如何利用 AstroJS、Sanity 和 Daytona 显著提升博客应用的开发效率。

什么是 Daytona?

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

Daytona 是一个开源的开发环境管理器 (DEM),旨在简化开发环境的管理和部署,称为“工作区”。这些工作区基于 Docker 容器构建,并完全兼容 Devcontainer 标准。

Daytona 的主要特性:

  • 模块化架构:兼容 Dockerfiles、Docker Compose、Nix 和 Devfile 等配置标准。
  • 简化部署:只需一条命令即可部署功能完整的开发环境,Daytona 会处理所有底层复杂性。
  • Devcontainers 基础:利用多功能的 Devcontainers 标准定义和管理基于云的开发环境。

开发容器和配置

Devcontainers 标准允许您使用存储库中 .devcontainer 文件夹下的 devcontainer.json 文件轻松配置开发环境。

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

Devcontainers 的优势:

Devcontainers 允许您根据特定需求定义自定义、功能丰富且优化的开发环境。它还支持 Dockerfile 和 Docker Compose 配置,实现无缝集成。更多详情,请自行探索 Devcontainers 及其功能。

devcontainer.json 示例 (AstroJS 和 Sanity 项目):

{
    "name": "astro + sanity dev container",
    "image": "mcr.microsoft.com/devcontainers/typescript-node:latest",
    "features": {
        "ghcr.io/devcontainers/features/node:1": {
            "version": "20",
            "pnpmversion": "9.12.2"
        },
        "ghcr.io/devcontainers/features/git:1": {}
    },
    "forwardports": [4321, 3333],
    "customizations": {
        "vscode": {
            "extensions": [
                "astro-build.astro-vscode",
                "esbenp.prettier-vscode",
                "dbaeumer.vscode-eslint",
                "eamodio.gitlens",
                "styled-components.vscode-styled-components",
                "ms-vscode.vscode-typescript-next"
            ],
            "settings": {
                "astro.enableautoimport": true,
                "editor.formatonsave": true,
                "typescript.tsdk": "/node_modules/typescript/lib",
                "eslint.format.enable": true,
                "files.eol": "\n",
                "prettier.requireconfig": true
            }
        }
    },
    "containerenv": {
        "node_env": "development",
        "pnpm_home": "/tmp/pnpm-store"
    },
    "postcreatecommand": {
        "install-dependencies": "pnpm config set store-dir /tmp/pnpm-store && pnpm install",
        "env-file-create": "/bin/bash ./create-env-file.sh"
    },
    "portsattributes": {
        "3333": { "label": "sanity studio" },
        "4321": { "label": "astro dev port" }
    }
}

关键部分:

  • image: 指定开发环境的基础镜像。
  • features: 向容器中添加预配置的工具或实用程序。
  • forwardports: 将端口从容器映射到主机。
  • customizations: 指定编辑器配置,例如扩展、设置和格式偏好设置(特别是 VS Code)。
  • containerenv: 设置容器的环境变量。
  • postcreatecommand: 创建容器后运行的命令(例如,安装依赖项)。
  • portsattributes: 开发中使用的特定端口的标签。

更多配置选项,请参考 Devcontainer JSON 文档。

Daytona 的先决条件

在下载 Daytona 之前,需要满足以下条件:

  • Docker
  • 文本编辑器/IDE 例如 VS Code、JetBrains 等
  • SSH 客户端 访问远程服务器所需

下载和启动 Daytona

Daytona 支持所有主要操作系统。请按照安装指南进行设置。

使用以下命令启动 Daytona:

daytona

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

启动 Daytona 服务器:

Memories.ai
Memories.ai

专注于视频解析的AI视觉记忆模型

下载
  • 守护进程模式 (Windows 系统不支持): daytona server start
  • 当前终端会话: daytona serve

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

添加 Git 提供商和配置 IDE

使用以下命令添加 Git 提供商(例如 GitHub、GitLab):

daytona git-providers add

按照屏幕提示集成您的 Git 配置文件。完成后,您可以访问 Git 仓库中托管的项目。

Daytona 允许在任何流行的 IDE 上运行开发环境。运行以下命令并选择您选择的 IDE:

daytona ide

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

使用 Daytona 进行开发

您需要一个包含 devcontainer.json 文件(位于 .devcontainer 文件夹下)的项目。

Daytona 入门命令:

  • 创建开发容器:daytona create
  • 从 Git 仓库启动开发容器:daytona create https://github.com/daytonaio/sample-astro-blog

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS与 Daytona 的约会:探索 AstroJS 和 Sanity CMS与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

与 Daytona 协同开发 (示例 AstroJS Sanity 博客)

  1. 登录 Sanity: 登录您的 Sanity 帐户并创建一个新项目。
  2. 生成 API 令牌: 在 Sanity 项目设置的 API 部分生成一个新令牌,用于配置环境变量。

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

运行项目:

  • 启动 AstroJS 应用: pnpm run dev
  • 访问 Sanity Studio: pnpm run sanity-dev

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

结论

Daytona 提供了一个成熟的开发环境,具备本地设置的所有功能。无论您的经验水平如何,Daytona 的强大功能以及与 AstroJS 和 Sanity 等现代工具的无缝集成都值得探索。

Daytona 的示例项目 (AstroJS Sanity 博客) 也值得一试。 Daytona 和其所依赖的工具都是开源的,请给予支持!

与 Daytona 的约会:探索 AstroJS 和 Sanity CMS

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

417

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

310

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

75

2025.09.10

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

80

2026.01.21

自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

663

2023.07.05

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

528

2023.07.06

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

265

2023.07.24

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
go语言零基础开发内容管理系统
go语言零基础开发内容管理系统

共34课时 | 2.6万人学习

第二十三期_前端开发
第二十三期_前端开发

共98课时 | 7.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号