diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts index b3a2bd220..c8467b39b 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/lego/index.ts @@ -5,6 +5,8 @@ import { CertApplyBasePlugin } from "../base.js"; import fs from "fs"; import { EabAccess } from "../../../access/index.js"; import path from "path"; +import { utils } from "@certd/basic"; +import JSZip from "jszip"; export { CertReader }; export type { CertInfo }; @@ -126,6 +128,25 @@ export class CertApplyLegoPlugin extends CertApplyBasePlugin { const savePathArgs = `--path "${saveDir}"`; const os_type = process.platform === "win32" ? "windows" : "linux"; const legoPath = path.resolve("./tools", os_type, "lego"); + if (!fs.existsSync(legoPath)) { + //解压缩 + if (os_type === "linux") { + await utils.sp.spawn({ + cmd: "tar -zxvf ./tools/linux/lego_*.tar.gz -C ./tools/linux/", + }); + this.logger.info("解压lego成功"); + } else { + const zip = new JSZip(); + const data = fs.readFileSync("./tools/windows/lego_windows_amd64.zip"); + const zipData = await zip.loadAsync(data); + const files = Object.keys(zipData.files); + for (const file of files) { + const content = await zipData.files[file].async("nodebuffer"); + fs.writeFileSync(`./tools/windows/${file}`, content); + } + this.logger.info("解压lego成功"); + } + } let serverArgs = ""; if (this.acmeServer) { serverArgs = ` --server ${this.acmeServer}`; diff --git a/packages/ui/Dockerfile b/packages/ui/Dockerfile index 2eb71680b..ad5672e5f 100644 --- a/packages/ui/Dockerfile +++ b/packages/ui/Dockerfile @@ -16,7 +16,9 @@ RUN apk add --no-cache openssl RUN #apk add --no-cache openjdk11-jdk WORKDIR /app/ COPY --from=builder /workspace/certd-server/ /app/ +RUN cd /app/tools/linux/ && tar -zxvf *.tar.gz RUN chmod +x /app/tools/linux/* + ENV TZ=Asia/Shanghai ENV NODE_ENV=production ENV MIDWAY_SERVER_ENV=production diff --git a/packages/ui/certd-server/.gitattributes b/packages/ui/certd-server/.gitattributes index a9167bf8b..000166e5e 100644 --- a/packages/ui/certd-server/.gitattributes +++ b/packages/ui/certd-server/.gitattributes @@ -1 +1,2 @@ -./tools/**/* filter=lfs diff=lfs merge=lfs -text +tools/** filter=lfs diff=lfs merge=lfs -text + diff --git a/packages/ui/certd-server/.gitignore b/packages/ui/certd-server/.gitignore index 31f7870e5..f462ff3e8 100755 --- a/packages/ui/certd-server/.gitignore +++ b/packages/ui/certd-server/.gitignore @@ -19,3 +19,6 @@ run/ .clinic .env.pgpl.yaml + +tools/windows/* +!tools/windows/*.zip diff --git a/packages/ui/certd-server/tools/linux/lego b/packages/ui/certd-server/tools/linux/lego deleted file mode 100644 index 1b3edf281..000000000 Binary files a/packages/ui/certd-server/tools/linux/lego and /dev/null differ diff --git a/packages/ui/certd-server/tools/linux/lego_linux_amd64.tar.gz b/packages/ui/certd-server/tools/linux/lego_linux_amd64.tar.gz new file mode 100644 index 000000000..18b1303d7 --- /dev/null +++ b/packages/ui/certd-server/tools/linux/lego_linux_amd64.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:588e41dfbc2a5ef1596953b605ef0981f95135443a1e66db3e06e1fa2c061eab +size 24746505 diff --git a/packages/ui/certd-server/tools/windows/lego.exe b/packages/ui/certd-server/tools/windows/lego.exe deleted file mode 100644 index 87f9e07be..000000000 Binary files a/packages/ui/certd-server/tools/windows/lego.exe and /dev/null differ diff --git a/packages/ui/certd-server/tools/windows/lego_windows_amd64.zip b/packages/ui/certd-server/tools/windows/lego_windows_amd64.zip new file mode 100644 index 000000000..71dfe6bc5 --- /dev/null +++ b/packages/ui/certd-server/tools/windows/lego_windows_amd64.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b91a1e4f32b3f5e55fa6e455b8a72069cd2983ec7a36d275f0aa4b0d82a0de6 +size 25579960