diff --git a/agent/app/service/website.go b/agent/app/service/website.go index 5a3ad9d3c..85f5dc584 100644 --- a/agent/app/service/website.go +++ b/agent/app/service/website.go @@ -407,9 +407,10 @@ func (w WebsiteService) CreateWebsite(create request.WebsiteCreate) (err error) } case constant.RuntimeNode, constant.RuntimeJava, constant.RuntimeGo, constant.RuntimePython, constant.RuntimeDotNet: proxyPort := runtime.Port - if create.Port > 0 { - proxyPort = strconv.Itoa(create.Port) + if proxyPort == "" { + return buserr.New("ErrRuntimeNoPort") } + proxyPort = strconv.Itoa(create.Port) website.Proxy = fmt.Sprintf("127.0.0.1:%s", proxyPort) } case constant.Subsite: diff --git a/agent/i18n/lang/en.yaml b/agent/i18n/lang/en.yaml index 0e8dfd13b..e5ace289c 100644 --- a/agent/i18n/lang/en.yaml +++ b/agent/i18n/lang/en.yaml @@ -125,6 +125,7 @@ ErrProxyIsUsed: "Load balancing has been used by reverse proxy, cannot be delete ErrSSLValid: 'Certificate file is abnormal, please check the certificate status!' ErrWebsiteDir: "Please select a directory within the website directory." ErrComposerFileNotFound: "composer.json file does not exist" +ErrRuntimeNoPort: "The runtime environment is not set with a port, please edit the runtime environment first." #ssl ErrSSLCannotDelete: 'The {{ .name }} certificate is being used by a website and cannot be deleted' diff --git a/agent/i18n/lang/ja.yaml b/agent/i18n/lang/ja.yaml index 034c05cef..f1b650dd1 100644 --- a/agent/i18n/lang/ja.yaml +++ b/agent/i18n/lang/ja.yaml @@ -125,6 +125,7 @@ ErrProxyIsUsed: "ロードバランシングはリバースプロキシによっ ErrSSLValid: '証明書ファイルが異常です、証明書の状態を確認してください!' ErrWebsiteDir: "ウェブサイトディレクトリ内のディレクトリを選択してください。" ErrComposerFileNotFound: "composer.json ファイルが存在しません" +ErrRuntimeNoPort: "ランタイム環境にポートが設定されていません。先にランタイム環境を編集してください。" #ssl ErrSSLCannotDelete: '{{ .name }} 証明書は Web サイトで使用されているため、削除できません' diff --git a/agent/i18n/lang/ko.yaml b/agent/i18n/lang/ko.yaml index 23e9a5031..05b9528d9 100644 --- a/agent/i18n/lang/ko.yaml +++ b/agent/i18n/lang/ko.yaml @@ -125,6 +125,7 @@ ErrProxyIsUsed: "로드 밸런싱이 역방향 프록시에 의해 사용되었 ErrSSLValid: '인증서 파일에 문제가 있습니다. 인증서 상태를 확인하세요!' ErrWebsiteDir: "웹사이트 디렉토리 내의 디렉토리를 선택하세요." ErrComposerFileNotFound: "composer.json 파일이 존재하지 않습니다" +ErrRuntimeNoPort: "런타임 환경에 포트가 설정되지 않았습니다. 먼저 런타임 환경을 편집하세요." #SSL인증 ErrSSLCannotDelete: '{{ .name }} 인증서는 웹사이트에서 사용 중이므로 삭제할 수 없습니다.' diff --git a/agent/i18n/lang/ms.yaml b/agent/i18n/lang/ms.yaml index 0f813a7c2..576c7c255 100644 --- a/agent/i18n/lang/ms.yaml +++ b/agent/i18n/lang/ms.yaml @@ -124,6 +124,7 @@ ErrProxyIsUsed: "Pengimbang beban telah digunakan oleh pengganti terbalik, tidak ErrSSLValid: 'Fail sijil bermasalah, sila periksa status sijil!' ErrWebsiteDir: "Sila pilih direktori dalam direktori laman web." ErrComposerFileNotFound: "Fail composer.json tidak wujud" +ErrRuntimeNoPort: "Persekitaran runtime tidak diset dengan port, sila edit persekitaran runtime terlebih dahulu." #ssl ErrSSLCannotDelete: 'Sijil {{ .name }} sedang digunakan oleh tapak web dan tidak boleh dipadamkan' diff --git a/agent/i18n/lang/pt-BR.yaml b/agent/i18n/lang/pt-BR.yaml index a3adcc469..2ff30e3a9 100644 --- a/agent/i18n/lang/pt-BR.yaml +++ b/agent/i18n/lang/pt-BR.yaml @@ -125,6 +125,7 @@ ErrProxyIsUsed: "Balanceamento de carga foi usado por proxy reverso, não pode s ErrSSLValid: 'O arquivo do certificado está anormal, verifique o status do certificado!' ErrWebsiteDir: "Por favor, selecione um diretório dentro do diretório do site." ErrComposerFileNotFound: "O arquivo composer.json não existe" +ErrRuntimeNoPort: "O ambiente de tempo de execução não está configurado com uma porta, edite o ambiente de tempo de execução primeiro." #ssl ErrSSLCannotDelete: 'O certificado {{ .name }} está sendo usado por um site e não pode ser excluído' diff --git a/agent/i18n/lang/ru.yaml b/agent/i18n/lang/ru.yaml index 874511f3d..44076da26 100644 --- a/agent/i18n/lang/ru.yaml +++ b/agent/i18n/lang/ru.yaml @@ -125,6 +125,7 @@ ErrProxyIsUsed: "Балансировка нагрузки использует ErrSSLValid: 'Файл сертификата аномален, проверьте статус сертификата!' ErrWebsiteDir: "Пожалуйста, выберите директорию внутри директории сайта." ErrComposerFileNotFound: "Файл composer.json не существует" +ErrRuntimeNoPort: "Среда выполнения не настроена с портом, сначала отредактируйте среду выполнения." #ssl ErrSSLCannotDelete: 'Сертификат {{ .name }} используется веб-сайтом и не может быть удален' diff --git a/agent/i18n/lang/tr.yaml b/agent/i18n/lang/tr.yaml index 0c0ab880b..ef5491257 100644 --- a/agent/i18n/lang/tr.yaml +++ b/agent/i18n/lang/tr.yaml @@ -125,6 +125,7 @@ ErrProxyIsUsed: "Yük dengeleme ters proxy tarafından kullanıldı, silinemez" ErrSSLValid: 'Sertifika dosyası anormal, lütfen sertifika durumunu kontrol edin!' ErrWebsiteDir: "Lütfen web sitesi dizini içindeki bir dizin seçin." ErrComposerFileNotFound: "composer.json dosyası mevcut değil" +ErrRuntimeNoPort: "Çalışma zamanı ortamı bir porta sahip değil, lütfen önce çalışma zamanı ortamını düzenleyin." #ssl ErrSSLCannotDelete: '{{ .name }} sertifikası bir web sitesi tarafından kullanılıyor ve silinemez' diff --git a/agent/i18n/lang/zh-Hant.yaml b/agent/i18n/lang/zh-Hant.yaml index a894adbcb..b5f23e987 100644 --- a/agent/i18n/lang/zh-Hant.yaml +++ b/agent/i18n/lang/zh-Hant.yaml @@ -124,6 +124,7 @@ ErrProxyIsUsed: "負載均衡已被反向代理使用,無法刪除" ErrSSLValid: '證書文件異常,請檢查證書狀態!' ErrWebsiteDir: "請選擇網站目錄下的目錄" ErrComposerFileNotFound: "composer.json 文件不存在" +ErrRuntimeNoPort: "運行環境未設置端口,請先編輯運行環境" #ssl ErrSSLCannotDelete: '{{ .name }} 憑證正在被網站使用,無法刪除' diff --git a/agent/i18n/lang/zh.yaml b/agent/i18n/lang/zh.yaml index c97ff1818..84312d628 100644 --- a/agent/i18n/lang/zh.yaml +++ b/agent/i18n/lang/zh.yaml @@ -124,6 +124,7 @@ ErrProxyIsUsed: "负载均衡已被反向代理使用,无法删除" ErrSSLValid: '证书文件异常,请检查证书状态!' ErrWebsiteDir: '请选择网站目录下的目录' ErrComposerFileNotFound: 'composer.json 文件不存在' +ErrRuntimeNoPort: '运行环境未设置端口,请先编辑运行环境' #ssl ErrSSLCannotDelete: "{{ .name }} 证书正在被网站使用,无法删除" diff --git a/frontend/src/views/website/website/create/index.vue b/frontend/src/views/website/website/create/index.vue index 5382aa078..13c4e0f14 100644 --- a/frontend/src/views/website/website/create/index.vue +++ b/frontend/src/views/website/website/create/index.vue @@ -17,36 +17,7 @@
- - - - - +
(); @@ -721,9 +693,11 @@ const getRuntimes = async () => { const first = runtimes.value[0]; website.value.runtimeID = first.id; runtimeResource.value = first.resource; - runtimePorts.value = first.port.split(',').map((port: string) => parseInt(port.trim(), 10)); - if (runtimePorts.value.length > 0) { - website.value.port = runtimePorts.value[0]; + if (first.port != '') { + runtimePorts.value = first.port.split(',').map((port: string) => parseInt(port.trim(), 10)); + if (runtimePorts.value.length > 0) { + website.value.port = runtimePorts.value[0]; + } } } } catch (error) {} diff --git a/frontend/src/views/website/website/create/site-alert/index.vue b/frontend/src/views/website/website/create/site-alert/index.vue new file mode 100644 index 000000000..2e176546a --- /dev/null +++ b/frontend/src/views/website/website/create/site-alert/index.vue @@ -0,0 +1,38 @@ + + +