• 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

  • 相关阅读:
    使用javamail发信过程中的一些问题及解决方法
    互联网标准
    发送邮件报错javax.activation.UnsupportedDataTypeException: no object DCH for MIME type text/plain; charset=UTF-8
    在用split分割处理csv数据时,使用不包含在双引号中的逗号进行分割
    java 网络代理官方资料
    ORA-28000错误的原因及解决办法
    日文软件下载站点
    Azure 入门
    ElasticSearch 5学习(10)——结构化查询(包括新特性)
    ElasticSearch 5学习(9)——映射和分析(string类型废弃)
  • 原文地址:https://www.cnblogs.com/zhongyuanzhao000/p/11681474.html
Copyright © 2020-2023  润新知