jenkins容器内CI/CD 项目失败问题

问题: 在jenkins 的docker容器内CI/CD制作vue项目镜像失败

1、docker权限问题

js 复制代码
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=[镜像仓库地址]&target=&ulimits=null&version=1": dial unix /var/run/docker.sock: connect: permission denied
make: *** [makefile:6: docker_build] Error 1

1.1 原因:jenkins容器内: docker.sock 权限

1.2 问题解决方案

js 复制代码
cd /var/run        //进入dock儿.sock文件夹下
js 复制代码
ls -al         //查看文件的权限

文件权限如下:

srw-rw---- 1 root 994 0 Jun 30 06:51 docker.sock

进行权限修改

js 复制代码
chown root:root docker.sock
chmod o+rw docker.sock

最终权限修改成功为:srw-rw-rw- 1 root root 0 Jun 30 06:51 docker.sock

2、npm: not found

2.1 问题原因

项目为前端vue,依赖于nodejs 和 npm, 需要为容器安装npm, nodejs

2.2 问题解决方案

安装所需要环境

js 复制代码
apt-get update
apt-get install -y npm 

3、make: not found

3.1 问题原因

使用make语句执行,需要为容器安装make

3.2 问题解决方案

js 复制代码
apt-get install make

4、jenkins容器内使用docker命令提示: /var/run/docker.sock: connect: permission denied

4.1问题原因

jenkins容器内无法使用docker打包镜像文件

4.2 问题解决方案

js 复制代码
docker run \
-d \
--name jenkinsnew \
-p 9999:8080 \
// -p 8888:8888 \
// -p 50000:50000 \                   //-p	指定端口映射,格式:<主机(宿主)端口>:<容器端口>
--privileged=true \                                   //容器可以访问主机上的设备或系统功能
-v /usr/local/src/jdk/jdk1.8:/usr/local/src/jdk/jdk1.8 \
-v /opt/apache-maven-3.5.0:/opt/apache-maven-3.5.0 \
-v /home/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \    
	 //-v表示使用数据卷。<host目录>:<容器目录>
 	//Docker容器内的目录挂载到主机对应的目录上,使该两个目录下的数据保持同步
-v /usr/bin/docker:/usr/bin/docker \
jenkins/jenkins:lts
···
相关推荐
君穆南16 分钟前
基于 NFS 与 Rsync 实现跨服务器 Seafile 数据平滑迁移实战
linux·运维·git
bloglin9999919 分钟前
scp、rsync远程文件同步
linux·运维·服务器
迦南的迦 亚索的索29 分钟前
LINUX环境
linux·运维·服务器
yuanjj8830 分钟前
linux下调试域格CLM920 NC5等9x07平台模块 QMI拨号
linux·运维·服务器
IMPYLH1 小时前
Linux 的 printenv 命令
linux·运维·服务器·bash
SilentSamsara1 小时前
SSH 远程管理:密钥登录 + 隧道转发,一次性配置好
linux·运维·服务器·ubuntu·centos·ssh
HoneyMoose1 小时前
Jenkins Cloudflare 部署提示错误
java·servlet·jenkins
冷色系里的一抹暖调2 小时前
OpenClaw Docker部署避坑指南:服务启动成功但网页打不开?
人工智能·docker·容器·openclaw
Cx330❀2 小时前
Linux命名管道(FIFO)通信:从原理到实操,一文搞懂跨进程通信
大数据·linux·运维·服务器·elasticsearch·搜索引擎
嵌入式×边缘AI:打怪升级日志2 小时前
嵌入式Linux应用开发快速入门(从零到第一个程序)
linux·运维·notepad++