diff --git a/agent/app/service/container.go b/agent/app/service/container.go index ce2e97e37..133f2f5c4 100644 --- a/agent/app/service/container.go +++ b/agent/app/service/container.go @@ -1503,15 +1503,18 @@ func loadConfigInfo(isCreate bool, req dto.ContainerOperate, oldContainer *conta hostConf.DNS = req.DNS config.Volumes = make(map[string]struct{}) for _, volume := range req.Volumes { - hostConf.Mounts = append(hostConf.Mounts, mount.Mount{ + item := mount.Mount{ Type: mount.Type(volume.Type), Source: volume.SourceDir, Target: volume.ContainerDir, ReadOnly: volume.Mode == "ro", - BindOptions: &mount.BindOptions{ + } + if volume.Type == "mount" { + item.BindOptions = &mount.BindOptions{ Propagation: mount.Propagation(volume.Shared), - }, - }) + } + } + hostConf.Mounts = append(hostConf.Mounts, item) config.Volumes[volume.ContainerDir] = struct{}{} } return &config, &hostConf, &networkConf, nil diff --git a/agent/utils/files/file_op.go b/agent/utils/files/file_op.go index 56d141b06..5c035299e 100644 --- a/agent/utils/files/file_op.go +++ b/agent/utils/files/file_op.go @@ -751,12 +751,11 @@ func (f FileOp) Decompress(srcFile string, dst string, cType CompressType, secre if err = shellArchiver.Extract(srcFile, dst, secret); err == nil { return nil } - if cType == TarGz && strings.Contains(err.Error(), "bad decrypt") { - return buserr.New("ErrBadDecrypt") - } - if cType == TarGz && cmd.Which("file") { - std, _ := cmd.RunDefaultWithStdoutBashCf("file %s", srcFile) - if strings.Contains(std, "openssl enc'd data with salted password") && len(secret) == 0 { + if cType == TarGz { + if strings.Contains(err.Error(), "bad decrypt") { + return buserr.New("ErrBadDecrypt") + } + if err := shellArchiver.Extract(srcFile, dst, "-"); strings.Contains(err.Error(), "bad decrypt") { return buserr.New("ErrBadDecrypt") } } diff --git a/frontend/src/lang/modules/en.ts b/frontend/src/lang/modules/en.ts index 811b6f37b..aedad5751 100644 --- a/frontend/src/lang/modules/en.ts +++ b/frontend/src/lang/modules/en.ts @@ -1642,7 +1642,8 @@ const message = { emailHelper: 'For password retrieval', watermark: 'Watermark Settings', watermarkContent: 'Watermark Content', - contentHelper: 'Use {0} to represent the current node name and node IP', + contentHelper: + 'Tip: ${nodeName} represents node name, ${nodeAddr} represents node address. You can use variables or fill in custom names.', watermarkColor: 'Watermark Color', watermarkFont: 'Watermark Font Size', watermarkHeight: 'Watermark Height', diff --git a/frontend/src/lang/modules/es-es.ts b/frontend/src/lang/modules/es-es.ts index 4df27ace8..707a99c26 100644 --- a/frontend/src/lang/modules/es-es.ts +++ b/frontend/src/lang/modules/es-es.ts @@ -1640,7 +1640,8 @@ const message = { emailHelper: 'Para recuperación de contraseña', watermark: 'Configuración de marca de agua', watermarkContent: 'Contenido de la marca de agua', - contentHelper: 'Usa {0} para representar el nombre e IP del nodo actual', + contentHelper: + 'Sugerencia: ${nodeName} representa el nombre del nodo, ${nodeAddr} representa la dirección del nodo. Puede usar variables o ingresar nombres personalizados.', watermarkColor: 'Color de la marca de agua', watermarkFont: 'Tamaño de fuente de la marca de agua', watermarkHeight: 'Altura de la marca de agua', diff --git a/frontend/src/lang/modules/ja.ts b/frontend/src/lang/modules/ja.ts index 4cfd63ccf..115478ffc 100644 --- a/frontend/src/lang/modules/ja.ts +++ b/frontend/src/lang/modules/ja.ts @@ -1586,7 +1586,8 @@ const message = { emailHelper: 'パスワード取得用', watermark: '透かし設定', watermarkContent: '透かし内容', - contentHelper: '{0} を使用して現在のノード名とノードIPを表す', + contentHelper: + 'ヒント:${nodeName}はノード名、${nodeAddr}はノードアドレスを表します。変数を使用するか、カスタム名を入力できます。', watermarkColor: '透かしの色', watermarkFont: '透かしのフォントサイズ', watermarkHeight: '透かしの高さ', diff --git a/frontend/src/lang/modules/ko.ts b/frontend/src/lang/modules/ko.ts index f18df20a0..c2e66db9f 100644 --- a/frontend/src/lang/modules/ko.ts +++ b/frontend/src/lang/modules/ko.ts @@ -1567,7 +1567,8 @@ const message = { emailHelper: '비밀번호 복구용', watermark: '워터마크 설정', watermarkContent: '워터마크 내용', - contentHelper: '{0}을 사용하여 현재 노드 이름과 노드 IP를 나타냅니다', + contentHelper: + '팁: ${nodeName}은 노드 이름, ${nodeAddr}은 노드 주소를 나타냅니다. 변수를 사용하거나 사용자 정의 이름을 입력할 수 있습니다.', watermarkColor: '워터마크 색상', watermarkFont: '워터마크 글꼴 크기', watermarkHeight: '워터마크 높이', diff --git a/frontend/src/lang/modules/ms.ts b/frontend/src/lang/modules/ms.ts index e10f722c1..02baaef3d 100644 --- a/frontend/src/lang/modules/ms.ts +++ b/frontend/src/lang/modules/ms.ts @@ -1632,7 +1632,8 @@ const message = { emailHelper: 'Untuk pemulihan kata laluan', watermark: 'Tetapan Tanda Air', watermarkContent: 'Kandungan Tanda Air', - contentHelper: 'Gunakan {0} untuk mewakili nama nod semasa dan IP nod', + contentHelper: + 'Petua: ${nodeName} mewakili nama nod, ${nodeAddr} mewakili alamat nod. Anda boleh menggunakan pembolehubah atau mengisi nama tersuai.', watermarkColor: 'Warna Tanda Air', watermarkFont: 'Saiz Fon Tanda Air', watermarkHeight: 'Ketinggian Tanda Air', diff --git a/frontend/src/lang/modules/pt-br.ts b/frontend/src/lang/modules/pt-br.ts index 6cd4bcb84..b5c7a3905 100644 --- a/frontend/src/lang/modules/pt-br.ts +++ b/frontend/src/lang/modules/pt-br.ts @@ -1622,7 +1622,8 @@ const message = { emailHelper: 'Para recuperação de senha', watermark: 'Configurações de Marca d Água', watermarkContent: 'Conteúdo da Marca d Água', - contentHelper: 'Use {0} para representar o nome do nó atual e o IP do nó', + contentHelper: + 'Dica: ${nodeName} representa o nome do nó, ${nodeAddr} representa o endereço do nó. Você pode usar variáveis ou preencher nomes personalizados.', watermarkColor: 'Cor da Marca d Água', watermarkFont: 'Tamanho da Fonte da Marca d Água', watermarkHeight: 'Altura da Marca d Água', diff --git a/frontend/src/lang/modules/ru.ts b/frontend/src/lang/modules/ru.ts index 78a4876a2..743680344 100644 --- a/frontend/src/lang/modules/ru.ts +++ b/frontend/src/lang/modules/ru.ts @@ -1624,7 +1624,8 @@ const message = { emailHelper: 'Для восстановления пароля', watermark: 'Настройки Водяного Знака', watermarkContent: 'Содержимое Водяного Знака', - contentHelper: 'Используйте {0} для обозначения текущего имени узла и IP-адреса узла', + contentHelper: + 'Подсказка: ${nodeName} представляет имя узла, ${nodeAddr} представляет адрес узла. Вы можете использовать переменные или ввести пользовательские имена.', watermarkColor: 'Цвет Водяного Знака', watermarkFont: 'Размер Шрифта Водяного Знака', watermarkHeight: 'Высота Водяного Знака', diff --git a/frontend/src/lang/modules/tr.ts b/frontend/src/lang/modules/tr.ts index 0397a83d4..27aa7967e 100644 --- a/frontend/src/lang/modules/tr.ts +++ b/frontend/src/lang/modules/tr.ts @@ -1662,7 +1662,8 @@ const message = { emailHelper: 'Parola kurtarma için', watermark: 'Filigran Ayarları', watermarkContent: 'Filigran İçeriği', - contentHelper: 'Mevcut düğüm adını ve düğüm IP sini temsil etmek için {0} kullanın', + contentHelper: + 'İpucu: ${nodeName} düğüm adını, ${nodeAddr} düğüm adresini temsil eder. Değişkenleri kullanabilir veya özel adlar girebilirsiniz.', watermarkColor: 'Filigran Rengi', watermarkFont: 'Filigran Yazı Tipi Boyutu', watermarkHeight: 'Filigran Yüksekliği', diff --git a/frontend/src/lang/modules/zh-Hant.ts b/frontend/src/lang/modules/zh-Hant.ts index 72b502270..a0084384c 100644 --- a/frontend/src/lang/modules/zh-Hant.ts +++ b/frontend/src/lang/modules/zh-Hant.ts @@ -1559,7 +1559,7 @@ const message = { emailHelper: '用於密碼找回', watermark: '浮水印設定', watermarkContent: '浮水印內容', - contentHelper: '使用 {0} 作為目前節點名稱和節點 IP', + contentHelper: '提示:${nodeName} 表示節點名稱,${nodeAddr} 表示節點地址,既可以使用變數,也可以填寫自訂名稱。', watermarkColor: '浮水印顏色', watermarkFont: '浮水印字型大小', watermarkHeight: '浮水印高度', diff --git a/frontend/src/lang/modules/zh.ts b/frontend/src/lang/modules/zh.ts index 5e96d9fe8..6b80b397a 100644 --- a/frontend/src/lang/modules/zh.ts +++ b/frontend/src/lang/modules/zh.ts @@ -1555,7 +1555,8 @@ const message = { emailHelper: '用于密码找回', watermark: '水印设置', watermarkContent: '水印内容', - contentHelper: '使用 {0} 作为当前节点名称和节点 IP', + contentHelper: + '提示:${nodeName} 表示节点名称,${nodeAddr} 表示节点地址,既可以使用变量,也可以填写自定义名称。', watermarkColor: '水印颜色', watermarkFont: '水印字号', watermarkHeight: '水印高度', diff --git a/frontend/src/layout/index.vue b/frontend/src/layout/index.vue index f67dd6fb5..eceae1f4e 100644 --- a/frontend/src/layout/index.vue +++ b/frontend/src/layout/index.vue @@ -102,7 +102,7 @@ const loadContent = () => { '${nodeName}', globalStore.currentNode === 'local' ? globalStore.getMasterAlias() : globalStore.currentNode, ); - itemName = itemName.replaceAll('${nodeAddr}', globalStore.currentNodeAddr); + itemName = itemName.replaceAll('${nodeAddr}', globalStore.currentNodeAddr || '127.0.0.1'); return itemName; }; diff --git a/frontend/src/utils/node.ts b/frontend/src/utils/node.ts index 847c86367..379367d34 100644 --- a/frontend/src/utils/node.ts +++ b/frontend/src/utils/node.ts @@ -34,5 +34,5 @@ export const changeToLocal = async () => { export const setDefaultNodeInfo = () => { globalStore.currentNode = 'local'; - globalStore.currentNodeAddr = ''; + globalStore.currentNodeAddr = '127.0.0.1'; }; diff --git a/frontend/src/views/container/container/operate/volume.vue b/frontend/src/views/container/container/operate/volume.vue index db56b4840..729a6e6c2 100644 --- a/frontend/src/views/container/container/operate/volume.vue +++ b/frontend/src/views/container/container/operate/volume.vue @@ -38,7 +38,7 @@ diff --git a/frontend/src/views/setting/panel/index.vue b/frontend/src/views/setting/panel/index.vue index a910cfd55..4ac2622ca 100644 --- a/frontend/src/views/setting/panel/index.vue +++ b/frontend/src/views/setting/panel/index.vue @@ -372,6 +372,11 @@ const search = async () => { globalStore.themeConfig.theme = form.theme; form.proxyDocker = xpackRes.data.proxyDocker; form.watermark = xpackRes.data.watermark; + try { + globalStore.watermark = JSON.parse(xpackRes.data.watermark); + } catch { + globalStore.watermark = null; + } form.watermarkItem = xpackRes.data.watermark ? 'Enable' : 'Disable'; } } else { diff --git a/frontend/src/views/setting/panel/watermark/index.vue b/frontend/src/views/setting/panel/watermark/index.vue index 34002815e..04cd7b4da 100644 --- a/frontend/src/views/setting/panel/watermark/index.vue +++ b/frontend/src/views/setting/panel/watermark/index.vue @@ -20,7 +20,7 @@ > - {{ $t('setting.contentHelper', ['${nodeName} ${nodeAddr}']) }} + {{ $t('setting.contentHelper') }} @@ -37,8 +37,8 @@