首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gitea和Jenkins在码头的设置

Gitea和Jenkins在码头的设置
EN

Stack Overflow用户
提问于 2018-03-30 13:06:03
回答 1查看 2.1K关注 0票数 0

我正在尝试建立一个设置,Gitea和Jenkins在单独的Docker容器中运行,并设置一个简单的管道。

我遇到的问题是把Jenkins和Gitea联系起来。在我的设置中,Gitea正在侦听容器中端口22上的SSH,我将其映射到本地主机上的端口3001 (目前用于测试目的)。

从create新管道接口,我被要求向Gitea回购提供SSH url。我确实是这样说的:

代码语言:javascript
复制
git@localhost:3001/repo/project.git

但詹金斯似乎无法联系上说我需要一个有效的URL。我已经将Jenkins生成的密钥添加到了我的Git用户配置文件中。

然后,我尝试从本地主机执行git克隆,因此生成了一对密钥,将公钥添加到同一个Git配置文件中,然后执行命令。

代码语言:javascript
复制
git clone ssh://git@localhost:3001/repo/project.git

然而,其结果是:

代码语言:javascript
复制
Cloning into 'project'...
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

所以我不确定我错过了什么。我确实将本地机器生成的密钥添加到GitHub中,并且能够从那里克隆出很好的密钥,所以我非常肯定这与Docker环境中的Gitea有关。

我已经验证了Jenkins容器可以看到Gitea容器,并且它们是在同一个网络上连接的。

我在这里遗漏了什么,这样我才能从Gitea那里克隆出在码头运行的克隆人?我相信这也是解决詹金斯问题的关键。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-05-09 12:11:58

看起来,您提供给Jenkins的URL (git@localhost: 3001 /repo/project.git)意味着Jenkins的 localhost,即它在其中运行的容器,而不是停靠主机 localhost,即端口3001被转发到Gitea容器端口22的服务器。

尝试首先使用基于,例如http://:3000/username/mypetproject,前提是您还将Gitea的UI端口3000转发到您的码头主机上的同一个端口。

我有一个类似的设置工作: Gitea和Jenkins都在同一个网络上运行在他们自己的容器中,整个过程是由docker-组合管理的。Gitea集装箱出口港3000000个,港口22个22022个。另外,Gitea托管在子路径/gitea/中:我在撰写文件中有很多其他内容,希望避免显式地指定端口,因此我添加了一个nginx实例作为反向代理,将/jenkins/*请求路由到Jenkins的容器,/gitea/*请求路由到Gitea的容器。

在Jenkins作业设置中,我使用http://<hostname>/gitea/username/repo.git作为回购URL。<hostname>显然是主机的名称。

最后一件事:尝试将docker exec插入正在运行的Gitea容器中,并使用端口22在本地克隆回购(基本上与您从本地主机尝试的操作相同)。如果成功的话,您可以合理地确定Gitea没有错误,并且应该检查您的网络/端口转发设置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49575024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档