Gitpod.io 是一个 "在云上建立的开发环境" 的第三方服务,在本地资源紧张或不可用时,其可以作为建立开发环境的替代方案。
您可以创建一个免费帐户,目前每月最多可以使用 50 小时。
其配置文件 /gitpod.yml
已经事先存放在项目中,完成配置后可直接使用。
完成以下配置,就可以开始使用 Gitpod 了。
登录 GitLab,打开 https://jihulab.com/-/profile/preferences 页面,在 Integrations
一栏勾选 Enable Gitpod integration
,然后点击保存。
之后就可以在 Project 页面看到 Gitpod
按钮了:
Gitpod 有很好的文档。创建帐户后,可以通过以下方式创建 Workspaces:
Gitpod
,该按钮与 Web IDE
共享一个按钮位置。gitpod.io/#
,例如 gitpod.io/#https://jihulab.com/gitlab-cn/handbook
。Gitpod 会基于用户选择的分支在云端拉起一套开发环境,在开始前先创建好开发分支,推荐在相应 Issue 中点击 Create merge request
来创建开发分支。
第一次启动一个新的 Workspaces 需要一段时间来拉取 docker 镜像,下载并安装依赖,完成后会在浏览器打开一个 VS Code 页面,这时就完成了开发环境的创建。
Workspaces 启动后会在终端开启三个 tab 页:
前两个 “site server” 选项卡将自动安装依赖项并将 site server 作为后台守护进程启动。
第三个 “Instructions to view sites” 选项卡将自动更新以显示服务器启动的进度。全部完成后,您将看到消息:“The handbook and uncategorized sites are now available!”。
需要注意的是,经过测试,4567 端口的页面并不能正常限制,gitpod 将自动映射一个其他端口 7645
来展示 handbook,经过调试目前可以自动更新的页面效果,点击左侧 Remote Explorer
并点击 preview 按钮即可预览。
有时 Handbook 也有启动失败的情况,可以重新启动一个 handbook 的 site server 进程,方法如下:
Handbook site server (port 4567)
tab 页,输入命令:
ENABLE_LIVERELOAD=1 NO_CONTRACTS=true bundle exec middleman
make public
,并记住该端口这是就可以在 sites/handbook/source/handbook
路径中修改 Handbook 内容了,修改完成后,使用 command+S 保存,之后刷新预览页就可以看到更改的内容了。
这里的 push 操作与 VS Code 中类似,可在终端或者 UI 上进行该操作,这里不做过多介绍。
直接在将 about-gitlab-cn 拉取到本地进行开发与调试。
about-gitlab-cn
repo 的 Ruby 版本进行设置的唯一可信源,所有依赖项都保存在该 repo 中。nvm
是一个 Node 版本管理器。然后,在 about-gitlab-cn
目录中运行以下命令安装和使用存储库的 Node 版本:
nvm install
nvm use
应该从 .nvmrc
文件中自动检测到所需的 Node 版本,可以使用 nvm which
来确认。
使用一下命令来安装依赖并启动开发模式的 Middleman:
bundle install
yarn
cd sites/XXX # NOTE: where XXX is one of the sites in the monorepo. For example: `cd sites/handbook` or `cd sites/uncategorized`
NO_CONTRACTS=true bundle exec middleman
如果您在本地开发中遇到任何问题,运行带有额外详细标志的命令可能会有所帮助。
NO_CONTRACTS=true bundle exec middleman --verbose
Middleman 运行成功后,就可以在浏览器中打开 http://localhost:4567/ 来查看实时的本地预览,source
目录中的任何更改都会被自动检测并重新加载页面。
PDF 文件在开发模式下不可用。请参阅下面的详细信息。
有关更多信息,请参考 Middleman 文档。
OPENSSL_CFLAGS=-Wno-error=implicit-function-declaration asdf install ruby
ERROR: Failed to build gem native extension.
...
make failed, exit code 2
原因: openssl 版本原因, 解决方案:指定版本安装
gem install eventmachine -- --with-openssl-dir=/usr/local/opt/openssl@1.1
# 安装python 插件
asdf plugin add python
# 安装python
asdf install python 3.9.16
# 指定为默认版本
asdf global python 3.9.16
# 安装 gem
gem install libv8-node -v '15.14.0.1'
此外,使用 asdf 安装 nodejs 12.4.0 也会因为python 问题而报错,使用 nvm 安装 nodejs 则可以绕过