hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: org.jenkinsci.plugins.docker.workflow.Docker.build() is applicable for argument types: (java.util.LinkedHashMap, org.codehaus.groovy.runtime.GStringImpl, java.lang.String) values: [[dockerfile: FROM registry-vpc.cn-shanghai.aliyuncs.com/abel_repository/openjdk:17 COPY ./build/libs/*.jar /app.jar ENV TZ Asia/Shanghai EXPOSE 8080 ENTRYPOINT java $JAVA_OPTS -jar /app.jar ], ...] Possible solutions: build(java.lang.String), build(java.lang.String, java.lang.String), find(), wait(), dump()
时间: 2024-02-14 14:27:29 浏览: 284
JIRA 5.x Development Cookbook.pdf
这个错误是由于在 Jenkins 的 Pipeline 脚本中使用了错误的 `docker.build()` 方法导致的。根据错误信息,`docker.build()` 方法不适用于给定的参数类型。
正确的用法是使用 `docker.build(String)` 方法来构建 Docker 镜像。你可以将 Dockerfile 的内容作为字符串参数传递给该方法。以下是一个示例:
```groovy
docker.build("FROM registry-vpc.cn-shanghai.aliyuncs.com/abel_repository/openjdk:17\nCOPY ./build/libs/*.jar /app.jar\nENV TZ Asia/Shanghai\nEXPOSE 8080\nENTRYPOINT java $JAVA_OPTS -jar /app.jar")
```
请确保将 Dockerfile 内容作为字符串传递给 `docker.build()` 方法,并在每个行之间使用 `\n` 进行换行。
如果你仍然遇到问题,请确保你已经安装了正确版本的 Docker Pipeline 插件,并且与 Jenkins 兼容。你还可以尝试更新插件或重新启动 Jenkins 来解决问题。
阅读全文