fix bug
This commit is contained in:
@@ -84,6 +84,10 @@ func GetDevContainerDetails(ctx *context.Context) {
|
||||
if webTerminalContainerName == "" {
|
||||
ctx.Flash.Error("webTerminal do not exist.", true)
|
||||
} else {
|
||||
rootPort, err := devcontainer_service.GetPortFromURL(cfg.Section("server").Key("ROOT_URL").Value())
|
||||
if err != nil {
|
||||
ctx.Flash.Error(err.Error(), true)
|
||||
}
|
||||
terminalParams := "user=" +
|
||||
ctx.Doer.Name +
|
||||
"&repo=" +
|
||||
@@ -95,7 +99,8 @@ func GetDevContainerDetails(ctx *context.Context) {
|
||||
"&domain=" +
|
||||
cfg.Section("server").Key("DOMAIN").Value() +
|
||||
"&port=" +
|
||||
cfg.Section("server").Key("HTTP_PORT").Value()
|
||||
rootPort
|
||||
|
||||
port, err := devcontainer_service.GetMappedPort(ctx, webTerminalContainerName, "7681")
|
||||
webTerminalURL, err := devcontainer_service.ReplacePortOfUrl(cfg.Section("server").Key("ROOT_URL").Value(), fmt.Sprintf("%d", port))
|
||||
if err != nil {
|
||||
|
||||
@@ -193,6 +193,30 @@ func ReplacePortOfUrl(originalURL, targetPort string) (string, error) {
|
||||
newURL := parsedURL.String()
|
||||
return newURL, nil
|
||||
}
|
||||
func GetPortFromURL(urlStr string) (string, error) {
|
||||
parsedURL, err := url.Parse(urlStr)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("解析URL失败: %v", err)
|
||||
}
|
||||
|
||||
// 获取主机名和端口号
|
||||
_, port, err := net.SplitHostPort(parsedURL.Host)
|
||||
if err != nil {
|
||||
// 如果SplitHostPort失败,说明URL中没有明确指定端口
|
||||
// 需要根据协议判断默认端口
|
||||
switch parsedURL.Scheme {
|
||||
case "http":
|
||||
return "80", nil
|
||||
case "https":
|
||||
return "443", nil
|
||||
default:
|
||||
return "", fmt.Errorf("未知协议: %s", parsedURL.Scheme)
|
||||
}
|
||||
}
|
||||
|
||||
// 如果端口存在,直接返回
|
||||
return port, nil
|
||||
}
|
||||
|
||||
// addFileToTar 将文件添加到 tar 归档
|
||||
func AddFileToTar(tw *tar.Writer, filename string, content string, mode int64) error {
|
||||
|
||||
Reference in New Issue
Block a user