package maker import ( "context" "os" "path/filepath" "yizhisec.com/hsv2/forge/pkg/logger" "yizhisec.com/hsv2/forge/pkg/model" "yizhisec.com/hsv2/forge/pkg/resource" ) func (m *maker) EMQX(ctx context.Context) error { var ( err error location = filepath.Join(m.workdir, "dependency", "emqx") ) logger.Info("☑️ maker.EMQX: 开始构建 emqx(mqtt) 依赖...") logger.Debug("☑️ maker.EMQX: 开始构建 emqx(mqtt) 依赖...") logger.Debug("☑️ maker.EMQX: 创建目录 %s", location) if err = os.MkdirAll(location, 0755); err != nil { logger.Debug("❌ maker.EMQX: 创建 emqx 目录失败: %v", err) return err } logger.Debug("✅ maker.EMQX: 创建目录 %s 成功", location) logger.Debug("☑️ maker.EMQX: 写入 emqx.yaml 文件..., dest = %s", filepath.Join(location, "emqx.yaml")) if err = os.WriteFile(filepath.Join(location, "emqx.yaml"), resource.YAMLEMQX, 0644); err != nil { logger.Debug("❌ maker.EMQX: 写入 emqx.yaml 失败, err: %v", err) return err } logger.Debug("✅ maker.EMQX: 写入 emqx.yaml 文件成功, dest = %s", filepath.Join(location, "emqx.yaml")) logger.Debug("☑️ maker.EMQX: 开始获取所需镜像...") var img = &model.Image{Name: "hub.yizhisec.com/external/emqx:5.1", Fallback: "", Save: "emqx.5.1.tar"} if err = m.Image(ctx, img.Name, WithImageFallback(img.Fallback), WithImageSave(filepath.Join(location, img.Save))); err != nil { logger.Debug("❌ maker.EMQX: 获取镜像失败: %s, %v", img.Name, err) return err } logger.Debug("✅ maker.EMQX: 获取所需镜像成功!!!") logger.Info("✅ maker.EMQX: 构建 emqx(mqtt) 依赖成功!!!") return nil }