zoukankan      html  css  js  c++  java
  • Jenkins服务使用 宿主机的docker、docker-compose (Jenkins 执行sudo命令时出现“sudo: no tty present and no askpass program specified”,以及 docker-compose command not found解决办法)

    若要转载本文,请务必声明出处:https://www.cnblogs.com/zhongyuanzhao000/p/11681474.html

    原因:

    本人最近正在尝试CI/CD,所以就使用了 Jenkins这款强大的CI/CD工具。
    由于直接在linux系统安装的Jenkins服务,且在pipeline中需要使用到 docker命令 和 docker-compose 命令,所以我考虑 在Jenkins中直接使用 宿主机中的 docker 和 docker-compose 命令

    解决步骤:

    一、修改配置,使得在Jenkins中通过 sudo 就可以获得root权限
    (问题:Jenkins 执行sudo命令时出现“sudo: no tty present and no askpass program specified”)
           在linux系统中执行命令:vi /etc/sudoers  来修改/etc/sudoers 文件,修改内容如下:
                首先,将   Defaults    requiretty  这一行用#注释掉;
                然后,在文件末尾加上一行:jenkins ALL=(ALL) NOPASSWD: ALL
                接着,通过 wq! 来强制保存并退出;
                最后,需要重启Jenkins,执行命令:/etc/init.d/jenkins restart

    二、配置docker命令:
           1、在linux系统执行命令: which docker  
                 得到输出:/usr/bin/docker  ,先记录下来。
           2、在Jenkins中,进入  系统管理==>全局工具设置,下拉至 Docker==>新增Docker,填写如下:

           3、然后在使用docker命令时,前面一定要加上 sudo,即 sudo docker xxx

     三、配置docker-compose命令:
    (问题:Jenkins中报错: docker-compose command not found)
            1、首先检查确认docker-compose的安装目录没有问题,
                  >>可以先在 linux系统执行命令:which docker-compose 
                  获得docker-compose程序的位置为:/usr/local/bin/docker-compose
                  >>然后,在Jenkins中查询 /usr/local/bin/ 目录确认含有docker-compose程序即可

            2、由于报错docker-compose命令找不到,也就是Jenkins无法确认docker-compose命令的位置,
                  那么可以直接使用上一步找到的程序的绝对路径来执行该命令,同时必须加上sudo,如下:
                  sudo /usr/local/bin/docker-compose  xxx

  • 相关阅读:
    Introduce myself
    二叉搜索树的后序遍历序列(剑指offer-23)
    从上到下打印二叉树(剑指offer-22)
    二叉树的深度(剑指offer-38)
    不用加减乘除做加法(剑指offer-48)
    栈的压入、弹出序列(剑指offer-21)
    Java容器
    包含min函数的栈(剑指offer-20)
    在Docker中创建Mongodb数据库
    词向量聚类实验
  • 原文地址:https://www.cnblogs.com/zhongyuanzhao000/p/11681474.html
Copyright © 2011-2022 走看看