云原生开发页面,是否能支持默认端口的访问展示#1183
需求背景:有一些项目是启动一个演示站点,打开云原生开发之后,希望直接访问使用。 当前的步骤:需要进入到开发环境,将端口映射出来,然后通过映射地址访问。
期待优化后:可以在云原生开发页面,直接把地址映射出来,简化步骤,直接使用。(这里可以定一个默认端口,启动的服务映射到这个端口,也可以支持在settings里定义要映射的端口)
需求设想如下图:
实际上需求就是想要那个访问业务端口需要的随机 id?
讨论了下:这个页面打开时,业务服务可能还没启动,即使显示了也没用
还是给到 vscode 面板来实现吧
如果希望能打开 WebIde 后,启动服务时能自动打开演示站点,可以在启动服务后,输出访问 url:用环境变量 CNB_VSCODE_PROXY_URI 来拼出来 url,替换掉环境变量中的 {{port}} 即可。这样就可以省掉打开 vscode 面板的步骤了
https://docs.cnb.cool/zh/repo/settings.html#pei-zhi-wen-jian-shuo-ming 对于演示项目,设置 autoOpenWebIDE: true,可以再少一步,环境创建好之后直接打开 WebIDE
autoOpenWebIDE: true
安装 cnbcool/cnb-welcome 插件,流水线配上自动执行命令,可以再少一步 https://cnb.cool/cnb/cool/cnb-welcome
写一个类似这样的sh即可,然后配置成welcomecmd 如果想不进入ide就在流水线看到地址可以
结合如上内容,我做了一些改造,目前基本能满足需求了。
CNB_WELCOME_CMD
python3 -m webbrowser
目前可以实现一键运行之后,自动打开web ide并且自动在浏览器打开对应5000端口的地址。
但现在还有一个小问题,需要点击一下允许才可以。那么问题来了: @jingjingwu 你们这边可以从底层看看,是否能把vscode的授信配置中,默认把cnb的域名加上,如下图,我是点击配置才有的:
这个我搜了搜资料,暂时没看到如何在定义环境的时候通过配置文件覆盖。
这个几年前研究过,这个文件内容似乎是存在内存里的,没法提前写入 近期我会再看看 vscode 和 codeserver 是否有更新这个用法
如果有了解的也可以提供下解决思路
OK,问了问gemini,感觉给的答案不是很对,我也探索探索。
这个几年前研究过,这个文件内容似乎是存在内存里的,没法提前写入 近期我会再看看 vscode 和 codeserver 是否有更新这个用法 如果有了解的也可以提供下解决思路
@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可以研究下,从底层把自己的域名写入授信列表。
如果域名能行,希望文件也默认授信:
@eryajf
我们是有在 WebIDE 的配置里默认加上这个配置,禁用工作区信任提醒,也就是这样配置后默认都会信任 security.workspace.trust.enabled: false
security.workspace.trust.enabled: false
但这个配置仅在用户配置中生效,我们改不了你本地的 vscode 配置,只能你自己改哈
你可以自己看看,我们是有默认改俩配置文件的: /root/.local/share/code-server/User/settings.json:WebIde 用户配置 /root/.vscode-server/data/Machine/settings.json:VSCode 客户端远程机器配置
/root/.local/share/code-server/User/settings.json
/root/.vscode-server/data/Machine/settings.json
你需要改你本地的一份配置文件,存在你本地,我们是改不了的
结合如上内容,我做了一些改造,目前基本能满足需求了。 把webide设置为默认打开。 声明 CNB_WELCOME_CMD,定义为: python3 -m webbrowser echo "${CNB_VSCODE_PROXY_URI//{{port}}/5000}"`` 目前可以实现一键运行之后,自动打开web ide并且自动在浏览器打开对应5000端口的地址。 但现在还有一个小问题,需要点击一下允许才可以。那么问题来了: @jingjingwu 你们这边可以从底层看看,是否能把vscode的授信配置中,默认把cnb的域名加上,如下图,我是点击配置才有的: 这个我搜了搜资料,暂时没看到如何在定义环境的时候通过配置文件覆盖。
@eryajf 对于 cnb 的 域名默认信任已支持,待发版。仅支持 WebIDE,客户端需要自己在本地修改
👍👍👍
这个特性将解决什么问题?
需求背景:有一些项目是启动一个演示站点,打开云原生开发之后,希望直接访问使用。
当前的步骤:需要进入到开发环境,将端口映射出来,然后通过映射地址访问。
设想的解决方案?如有
期待优化后:可以在云原生开发页面,直接把地址映射出来,简化步骤,直接使用。(这里可以定一个默认端口,启动的服务映射到这个端口,也可以支持在settings里定义要映射的端口)
需求设想如下图: