您可以使用以下代码来动态判断volumes上是否包含adrs-ui:

import org.yaml.snakeyaml.Yaml;

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        String yamlString = "services:\n" +
                "  adrs-ui:\n" +
                "    image: master:5000/dev/ly-mssp-auth-ui-test:2.2.20230804143853\n" +
                "    hostname: adrs-ui\n" +
                "    init: true\n" +
                "    ports:\n" +
                "    - 15111:80\n" +
                "    volumes:\n" +
                "     -\"/server/test.AAAA:/container/test.AAA\"\n" +
                "     #- \"/data/share/common/nginx/auth/nginx.conf:/etc/nginx/nginx.conf\"\n" +
                "     - \"/data/share/ssl.cer:/etc/nginx/ssl/ssl.cer\"\n" +
                "     - \"/data/share/ssl.key:/etc/nginx/ssl/ssl.key\"\n" +
                "     - \"/data/share/iacp.conf:/etc/nginx/nginx.conf\"";

        Yaml yaml = new Yaml();
        Map<String, Object> data = yaml.load(yamlString);

        if (data.containsKey("services")) {
            Map<String, Object> services = (Map<String, Object>) data.get("services");
            if (services.containsKey("adrs-ui")) {
                Map<String, Object> adrsUi = (Map<String, Object>) services.get("adrs-ui");
                if (adrsUi.containsKey("volumes")) {
                    List<String> volumes = (List<String>) adrsUi.get("volumes");
                    if (volumes.contains("adrs-ui")) {
                        System.out.println("volumes中包含adrs-ui");
                    } else {
                        System.out.println("volumes中不包含adrs-ui");
                    }
                }
            }
        }
    }
}

请注意,您需要在代码中添加import org.yaml.snakeyaml.Yaml;import java.util.Map;来导入相关的类。这段代码会将YAML字符串解析为一个Map对象,然后您可以根据需要对其进行操作。在这个例子中,我们首先检查是否存在services键,然后检查是否存在adrs-ui键,最后检查volumes列表中是否包含adrs-ui。根据结果,您可以执行相应的操作


原文地址: https://www.cveoy.top/t/topic/it6b 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录