logo
35
145
WeChat Login

云原生开发页面,是否能支持默认端口的访问展示#1183

Resolved
created 2025-07-09
Edit

这个特性将解决什么问题?

需求背景:有一些项目是启动一个演示站点,打开云原生开发之后,希望直接访问使用。
当前的步骤:需要进入到开发环境,将端口映射出来,然后通过映射地址访问。

设想的解决方案?如有

期待优化后:可以在云原生开发页面,直接把地址映射出来,简化步骤,直接使用。(这里可以定一个默认端口,启动的服务映射到这个端口,也可以支持在settings里定义要映射的端口)

需求设想如下图:

845dbc15-6f13-4bd3-a323-52b7832a9339.png
added labels
仅讨论
Developer

实际上需求就是想要那个访问业务端口需要的随机 id?

Developer

讨论了下:这个页面打开时,业务服务可能还没启动,即使显示了也没用

还是给到 vscode 面板来实现吧

如果希望能打开 WebIde 后,启动服务时能自动打开演示站点,可以在启动服务后,输出访问 url:用环境变量 CNB_VSCODE_PROXY_URI 来拼出来 url,替换掉环境变量中的 {{port}} 即可。这样就可以省掉打开 vscode 面板的步骤了

Developer

https://docs.cnb.cool/zh/repo/settings.html#pei-zhi-wen-jian-shuo-ming
对于演示项目,设置 autoOpenWebIDE: true,可以再少一步,环境创建好之后直接打开 WebIDE
5b741cb5-eaf7-44c7-850d-acd6290e8640.png

安装 cnbcool/cnb-welcome 插件,流水线配上自动执行命令,可以再少一步
https://cnb.cool/cnb/cool/cnb-welcome
6c1dfe4e-4ef1-4fee-89cb-87bbbfc4026e.png

写一个类似这样的sh即可,然后配置成welcomecmdcc8f00fb-2dca-45e1-beca-ef20d3cf9fce.png
如果想不进入ide就在流水线看到地址可以24c01fed-0232-4951-ae00-aac3da44d1d9.png

结合如上内容,我做了一些改造,目前基本能满足需求了。

  1. 把webide设置为默认打开。
  2. 声明 CNB_WELCOME_CMD,定义为: python3 -m webbrowser echo "${CNB_VSCODE_PROXY_URI//{{port}}/5000}"``

目前可以实现一键运行之后,自动打开web ide并且自动在浏览器打开对应5000端口的地址。

但现在还有一个小问题,需要点击一下允许才可以。那么问题来了: @jingjingwu 你们这边可以从底层看看,是否能把vscode的授信配置中,默认把cnb的域名加上,如下图,我是点击配置才有的:

a265bb25-abf3-4f38-8f96-7b6c359890ea.png

这个我搜了搜资料,暂时没看到如何在定义环境的时候通过配置文件覆盖。

Developer

这个几年前研究过,这个文件内容似乎是存在内存里的,没法提前写入
近期我会再看看 vscode 和 codeserver 是否有更新这个用法

如果有了解的也可以提供下解决思路

OK,问了问gemini,感觉给的答案不是很对,我也探索探索。

这个几年前研究过,这个文件内容似乎是存在内存里的,没法提前写入
近期我会再看看 vscode 和 codeserver 是否有更新这个用法

如果有了解的也可以提供下解决思路

@jingjingwu 我有发现https://github.com/coder/code-server/pull/7339这个pr,标题看上去是解决这个问题的,5月7号刚刚merge进去

Developer

@jingjingwu 我有发现https://github.com/coder/code-server/pull/7339这个pr,标题看上去是解决这个问题的,5月7号刚刚merge进去

@haorwen 666,明天来看看

nice,看了下是这个版本:https://github.com/coder/code-server/releases/tag/v4.100.0

那么是不是cnb可以研究下,从底层把自己的域名写入授信列表。

如果域名能行,希望文件也默认授信:

59f6c382-1eae-4908-be18-2fab0c182481.png
Developer

如果域名能行,希望文件也默认授信:

59f6c382-1eae-4908-be18-2fab0c182481.png

@eryajf

我们是有在 WebIDE 的配置里默认加上这个配置,禁用工作区信任提醒,也就是这样配置后默认都会信任 security.workspace.trust.enabled: false

但这个配置仅在用户配置中生效,我们改不了你本地的 vscode 配置,只能你自己改哈

你可以自己看看,我们是有默认改俩配置文件的:
/root/.local/share/code-server/User/settings.json:WebIde 用户配置
/root/.vscode-server/data/Machine/settings.json:VSCode 客户端远程机器配置

你需要改你本地的一份配置文件,存在你本地,我们是改不了的

assigned self
added labels
体验优化
已解决:待发布
,removed labels
仅讨论
Developer

结合如上内容,我做了一些改造,目前基本能满足需求了。

  1. 把webide设置为默认打开。
  2. 声明 CNB_WELCOME_CMD,定义为: python3 -m webbrowser echo "${CNB_VSCODE_PROXY_URI//{{port}}/5000}"``

目前可以实现一键运行之后,自动打开web ide并且自动在浏览器打开对应5000端口的地址。

但现在还有一个小问题,需要点击一下允许才可以。那么问题来了: @jingjingwu 你们这边可以从底层看看,是否能把vscode的授信配置中,默认把cnb的域名加上,如下图,我是点击配置才有的:

a265bb25-abf3-4f38-8f96-7b6c359890ea.png

这个我搜了搜资料,暂时没看到如何在定义环境的时候通过配置文件覆盖。

@eryajf 对于 cnb 的 域名默认信任已支持,待发版。仅支持 WebIDE,客户端需要自己在本地修改

1
1

👍👍👍

added labels
已解决:已生效
,removed labels
已解决:待发布
Assignee
(晶晶)
Label
体验优化
已解决:待发布
Priority
None yet
Time period
-
Property
Add custom properties to record and label key information
Participant