mirror of https://github.com/coder/coder.git
fix: code-server path based forwarding, defer to code-server (#11759)
Do not attempt to construct a path based port forward url. Always defer to code server, as it has it's own proxy method.
This commit is contained in:
parent
77a4792ecd
commit
081fbef097
|
@ -681,7 +681,11 @@ func (s *Server) CreateCommand(ctx context.Context, script string, env []string)
|
|||
|
||||
// This adds the ports dialog to code-server that enables
|
||||
// proxying a port dynamically.
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("VSCODE_PROXY_URI=%s", manifest.VSCodePortProxyURI))
|
||||
// If this is empty string, do not set anything. Code-server auto defaults
|
||||
// using its basepath to construct a path based port proxy.
|
||||
if manifest.VSCodePortProxyURI != "" {
|
||||
cmd.Env = append(cmd.Env, fmt.Sprintf("VSCODE_PROXY_URI=%s", manifest.VSCodePortProxyURI))
|
||||
}
|
||||
|
||||
// Hide Coder message on code-server's "Getting Started" page
|
||||
cmd.Env = append(cmd.Env, "CS_DISABLE_GETTING_STARTED_OVERRIDE=true")
|
||||
|
|
|
@ -150,12 +150,14 @@ func (a *ManifestAPI) GetManifest(ctx context.Context, _ *agentproto.GetManifest
|
|||
}
|
||||
|
||||
func vscodeProxyURI(app appurl.ApplicationURL, accessURL *url.URL, appHost string) string {
|
||||
// Proxying by port only works for subdomains. If subdomain support is not
|
||||
// available, return an empty string.
|
||||
if appHost == "" {
|
||||
return ""
|
||||
}
|
||||
|
||||
// This will handle the ports from the accessURL or appHost.
|
||||
appHost = appurl.SubdomainAppHost(appHost, accessURL)
|
||||
// If there is no appHost, then we want to use the access url as the proxy uri.
|
||||
if appHost == "" {
|
||||
appHost = accessURL.Host
|
||||
}
|
||||
// Return the url with a scheme and any wildcards replaced with the app slug.
|
||||
return accessURL.Scheme + "://" + strings.ReplaceAll(appHost, "*", app.String())
|
||||
}
|
||||
|
|
|
@ -35,19 +35,18 @@ func Test_vscodeProxyURI(t *testing.T) {
|
|||
Expected string
|
||||
}{
|
||||
{
|
||||
// No hostname proxies through the access url.
|
||||
Name: "NoHostname",
|
||||
AccessURL: coderAccessURL,
|
||||
AppHostname: "",
|
||||
App: basicApp,
|
||||
Expected: coderAccessURL.String(),
|
||||
Expected: "",
|
||||
},
|
||||
{
|
||||
Name: "NoHostnameAccessURLPort",
|
||||
AccessURL: accessURLWithPort,
|
||||
AppHostname: "",
|
||||
App: basicApp,
|
||||
Expected: accessURLWithPort.String(),
|
||||
Expected: "",
|
||||
},
|
||||
{
|
||||
Name: "Hostname",
|
||||
|
|
Loading…
Reference in New Issue