【问题标题】:how to git commit inside docker container and execute post-commit hook如何在 docker 容器中 git commit 并执行 post-commit 钩子
【发布时间】:2020-08-11 12:42:30
【问题描述】:

我在 docker 容器中有 Jenkins,在容器内我有一个本地 git 存储库,我添加了一个提交后文件,每次提交时都会在 Jenkins 中运行构建,但文件不运行, 有什么问题?

这是提交后的文件(在容器中)

Jenkins 在 localhost 的 docker 容器中运行

【问题讨论】:

    标签: git docker jenkins repository githooks


    【解决方案1】:

    我一遍又一遍地看到这个错误。

    localhost 总是被解析为使用它的任何机器的 127.0.0.1。在容器的上下文中,127.0.0.1 是容器本身,而不是运行 Docker 的机器。

    如果 Jenkins 和 Git 容器使用相同的网络,您可以在挂钩 URL 中使用 Jenkins 的容器 IP。否则,您需要先将它们放在同一个网络上 - 请参阅 question 了解如何执行此操作。

    【讨论】:

    • 文件本身未执行,当我在本地 git 目录(位于 jenkins 容器内)上执行 git commit 时,未执行回显命令
    • 所以提交后挂钩在 Git 容器内,而提交是在 Jenkins 容器内进行的?那你为什么认为它会起作用? Post-commit 钩子是一个客户端钩子(详见git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)。 Jenkins 需要在提交任何内容之前自行创建它。
    • 我没有 git 容器我只有一个 jenkins 容器,我在其中克隆了存储库
    • 您是手动执行提交还是从 Jenkins 作业执行?提交后脚本的位置以及文件名是什么?
    • 我正在 jenkins docker 内的本地存储库中手动执行提交。 post-commit 文件在 .git/hooks 它的名字是 post-commit
    猜你喜欢
    • 1970-01-01
    • 2012-03-09
    • 2013-01-06
    • 2011-11-16
    • 2017-05-15
    • 2014-02-15
    • 1970-01-01
    • 2014-06-27
    • 2014-07-22
    相关资源
    最近更新 更多