Tried ./gradlew clean build on the following docker images: openjdk:8-jdk-slim, java:8 and atlassian/default-image:latest (java-8-openjdk-amd64), and the same on my local machine (jdk1.8.0_162). Cleared the workspace between switching the different Forge versions and reran setup steps described in the README. NoSuchMethodError persisted in launcher until I moved the mappings to stable_39.
The recommended 1.12.2 - 22.214.171.12468 and even the current latest version 1.12.2 - 126.96.36.19914 has a minecraft.mappings set to snapshot_20171003 in the build.gradle file ... which is pretty old and from what I understand (correct me if I'm wrong ) might not match the actual Minecraft version 1.12.2 the Forge version is targeting. I ran across this when I started out writing my mod on 188.8.131.5268 and locally it was all fine and working since the decomp workspace provides the Minecraft source according to the mapping but when I built the jar and tried to run it on the Minecraft launcher for that Forge version I ran into the following exception: Caused by: java.lang.NoSuchMethodError: com.modalstudio.mctribes.item.ItemBlueprint.setUnlocalizedName(Ljava/lang/String;)Lnet/minecraft/item/Item; snapshot_20171003 was hip for Minecraft 1.12.0 source but 1.12.2 has removed that method in favor of setTranslationKey. Moving to stable_39 solved the case for me but it took me a while to figure out why upgrading to the latest Forge version didn't affect the issue at all - because I assumed that mappings are something you're keeping up to date and I wouldn't have to worry about So if at all possible I'd like to suggest modifying your build process to keep that minecraft.mappings up to date.