0

使用在 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?

4

1 回答 1

0

所以答案是....
用于 jenkins jvm 的 http 代理配置位于Manage plugins/Advanced Tab上。

要访问docker 子网上的服务器,它需要包含在该字段中:

无代理主机 172.21.0.0/24

https://wiki.jenkins.io/display/JENKINS/JenkinsBehindProxy

于 2019-02-20T19:11:25.363 回答