使用在ubuntu主机上运行的gogs / jenkins docker容器的简单CICD:
当我尝试从gogs容器中获取git repo时,出现此错误:
git fetch --tags --progress http://gogs-repo:3000/repo.git +refs/heads/*:refs/remotes/origin/* # timeout=10
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from http://gogs-repo:3000/repo.git
at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:904)
at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1144)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1175)
at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:120)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:144)
at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
at hudson.model.ResourceController.execute(ResourceController.java:97)
at hudson.model.Executor.run(Executor.java:429)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress http://gogs-repo:3000/repo.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout:
stderr: fatal: repository 'http://gogs-repo:3000/repo.git/' not found
但是,当我登录到jenkins容器时,它可以从命令行运行:
jenkins@2425782a55e8:/$ cd /tmp
jenkins@2425782a55e8:/tmp$ git clone http://gogs-repo:3000/repo.git
Cloning into 'dfscoco'...
remote: Enumerating objects: 7336, done.
remote: Counting objects: 100% (7336/7336), done.
remote: Compressing objects: 100% (4493/4493), done.
remote: Total 7336 (delta 2236), reused 7199 (delta 2123)
Receiving objects: 100% (7336/7336), 10.77 MiB | 0 bytes/s, done.
Resolving deltas: 100% (2236/2236), done.
任何想法?为什么Java代码无法解析URL?
答案 0 :(得分:0)
答案是....
用于jenkins jvm的http的代理配置位于管理插件/高级选项卡上。
要访问 docker子网中的服务器,该服务器必须包含在字段中:
无代理主机 172.21.0.0/24