gpt4 book ai didi

ubuntu - 如果使用 jenkins 在作业的 shell 命令上设置,则 docker-compose 无法正常运行

转载 作者:行者123 更新时间:2023-12-02 18:29:58 24 4
gpt4 key购买 nike

我在 Ubuntu 上安装了 Jenkins。将当前用户添加到 docker 组:

sudo usermod -aG docker ${USER}

还将 jenkins 用户添加到 docker 组:

sudo usermod -aG docker jenkins

我在 Jenkins 作业中设置了这个 shell 命令:

#!/bin/sh

docker-compose up -d --build

运行该作业后从 Jenkins 获得这些控制台输出:

...
$ /bin/bash /tmp/jenkins1207165068215188667.sh
Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
Build step 'Execute shell' marked build as failure
Finished: FAILURE

但是,如果我在 jenkins 用户下的主机上尝试命令 docker-compose up -d --build,它会起作用。为什么不能使用 Jenkins 的 shell 命令?

而且,为什么它让我使用 docker-machine?我尝试创建一个 docker 机器,但默认驱动程序是 virtualbox。因为我使用的是没有 GUI 的 Ubuntu,所以我认为 virtualbox 不是必需的。

最佳答案

您是否设置了 DOCKER_HOST 环境变量?这或多或少就是 docker-machine use ... 所做的。您需要告诉 docker 要连接到哪个套接字,并且当您在 jenkins 下登录时可能会运行一些 .bashrc 或类似的设置?在以 jenkins 身份运行 docker-compose up -d 之前检查 DOCKER_HOST var 并查看值是什么。然后你可以在你的脚本中 export DOCKER_HOST=... 当你知道的时候。

关于ubuntu - 如果使用 jenkins 在作业的 shell 命令上设置,则 docker-compose 无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50384012/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com