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
Jenkins服务使用 宿主机的docker、docker-compose (Jenkins 执行sudo命令时出现“sudo: no tty present and no askpass program specified”,以及 docker-compose command not found解决办法)的更多相关文章
- 【Devops】【docker】【CI/CD】关于jenkins构建成功后一步,执行的shell命令详解+jenkins容器运行宿主机shell命令的实现方法
1.展示这段shell命令 +详解 #================================================================================= ...
- docker部署Jenkins,以及在Jenkins中使用宿主机的docker/docker-compose命令
使用最新的官方镜像jenkins/jenkins 第一次使用的docker部署jenkins的时候,出现了两个问题: 1.因为用户权限问题挂载/home/jenkins/data到/var/jenki ...
- 用Docker启动php-5.6 fpm服务配合宿主机nginx运行php测试环境
因为Ubuntu18.04默认的openssl版本就是1.1.0, 而PHP5.6无法在openssl 1.1下编译 "PHP 5.6 is receiving only security ...
- Docker进入容器后使用ifconfig等命令“command not found”解决办法
当进入一个容器后,使用ifconfig.ip addr等命令时,出现如下“command not found”: 解决办法: yum update yum -y install n ...
- 启动jenkins服务错误
背景 重新安装了jenkins,需要启动,使用的yum install安装的,启动jenkins的话只需要执行service jenkins start,但出了两个问题 1. 是提示找不到java 2 ...
- 不使用sudo命令执行docker
不使用sudo命令执行docker 2015-09-11 11:03:05 王春生 8049 最后编辑:王春生 于 2015-09-11 12:18:30 简介:本篇文章介绍如何不使用sudo命 ...
- java通过http服务执行shell命令
服务端代码/** * 执行shell命令 * @param command 执行命令 * @return */public String exeCommandByPath( String comman ...
- Jenkins(Docker容器内)使用宿主机的docker命令
1.Jenkins镜像 Docker容器内的Jenkins使用容器外宿主机的Docker(即DooD,还有另外的情况就是DioD),google一下有几种说法,但是都没试成功(试过一种就是修改宿主机/ ...
- 容器版jenkins安装并且实现使用宿主机docker命令,采用的是docker outside deocker,带jdk、添加maven、git
docker版jekins使用宿主机docker命令 docker版jekins安装,实现CI/CD,也就是实现在容器里面使用宿主机docker命令,这样方式为:docker outside deoc ...
随机推荐
- [HNOI2016]序列 CDQ+DP
[HNOI2016]序列 CDQ 链接 loj 思路 一个点最小变为l,最大变为r,不变的时候为v 那么j能在i前面就要满足. \(j<i\) \(r[j]<=v[i]\) \(v[j]& ...
- 同余and乘法逆元学习笔记
目录 数学符号 快速幂 方法一 方法二 同余 概念 同余的性质 乘法逆元 概念: 求逆元的方法 扩展欧几里得 快速幂法\(o(n*log(n))\) 递推法\(o(n)\) sjp大佬让我写同余那就只 ...
- 如何高效的阅读uni-app框架?(建议收藏)
作者 | Jeskson来源 | 达达前端小酒馆 uni-app的框架,配置:page.json,manifest.json,package.json,vue.config.js.脚本,应用程序,ma ...
- linux 上使用yum 安装openjdk1.8
使用yum查找jdk: yum search java|grep jdk # yum search java|grep jdk ldapjdk-javadoc.noarch : Javadoc for ...
- IIS部署Silverlight
题设: 网站如果应用了Silverlight技术,直接部署到IIS中是无法正常运行的, 分析: 因为Silverlight应用所对应的三种MIME类型没有在IIS中注册,所以Silverlight相关 ...
- C# 序列化与反序列化之xml通过实现IXmlSerializable进行序列化的解决方案
新建控制台console项目,添加XmlPersonIXmlSerializable类,和AddressIXmlSerializable类(实现IXmlSerializable)以及AddressIX ...
- url的长度问题
url最长支持多少字符? 在http协议中,其实并没有对url长度作出限制,往往url的最大长度和用户浏览器和Web服务器有关,不一样的浏览器,能接受的最大长度往往是不一样的,当然,不一样的Web服务 ...
- java中HashSet对象内的元素的hashCode值不能变化
因为不管是HashMap(或HashTable,还是HashSet),key值是以hashCode值存进去的,加入key值变了,将无法从集合内删除对象,导致内存溢出.
- CISCO DHCP全攻略详解
原文链接地址:https://bbs.51cto.com/thread-800321-1.html 最近看到大家经常由于DHCP的问题犯愁, 为了让大家更明白的了解DHCP并且会配置,特此发这个贴 相 ...
- django学习问题集
case 1: python manage.py migrate时报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQL ...