Docker Job Container在jenkins容器内启动,无法访问已安装的jenkins工作区

如何解决Docker Job Container在jenkins容器内启动,无法访问已安装的jenkins工作区

我正在docker中运行Jenkins实例,并使用docker-compose在 RHEL 7.7主机

上启动了该实例

docker版本:Docker 1.13.1版,内部版本64e9980 / 1.13.1

docker撰写文件

version: "3.5"
services:

  jenkins:
    image: jenkins:2.251-slim
    container_name: jenkins
    privileged: true
    user: 1000:2020
    ports:
      - "8000:8080"
      - "50000:50000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock # Expose the docker daemon in the container
      - ./jenkins:/var/jenkins_home:rwz # Jenkins workspace
    networks:
      - backend

  networks:
  backend:
    name: sup_bridge
    driver: "bridge"

我最初遇到的问题是jenkins无法访问已挂载的./jenkins目录,后来发现selinux在我的计算机中处于强制状态

cat /etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted

通过在jenkins home的卷装载中添加:rwz来解决该问题

Jenkins现在工作正常,能够安装插件,并且我创建了多分支管道,

在分支中包含Jenkinsfile的管道阶段,

# Jenkinsfile
pipeline {
    agent none
    triggers {
        cron('25 */4 * * *')
    }
    stages {
        stage('Download Data') {
            agent {
                docker {
                    image 'sup:python-3.6-slim'
                    args '--network=sup_bridge'
                }
            }
            steps {
            withCredentials([
            usernamePassword(credentialsId: 'stgapi-username-pass',passwordVariable: 'pass',usernameVariable: 'user'),usernamePassword(credentialsId: 'user-git-creds',usernameVariable: 'gituser',passwordVariable: 'gitpass'),usernamePassword(credentialsId: 'mongo-connection-url',usernameVariable: 'mongo',passwordVariable: 'mongo_url'),]) {
                // the code in here can access $pass and $user
                sh 'git config --global credential.helper store'
                // to access and install some pip libraries from private hosted git server
                // $gitpass is of format https://user:pass@gitserver.com
                sh 'echo "$gitpass" > ~/.git-credentials'
                sh 'python --version'
                sh 'pip install -r requirements.txt'
                sh 'export username=$user && export password=$pass && export mongo_database="test" && export mongo_connection=$mongo_url && python runner.py'
                }
            }
        }
    }
}

当我在该分支上触发Jenkins构建时,它使容器摇摇欲坠,但挂在执行脚本上,并且超时了,

Jenkins构建控制台输出,

...
...
...
[Pipeline] withEnv
[Pipeline] {
[Pipeline] isUnix
[Pipeline] sh
+ docker inspect -f . sup:python-3.6-slim
.
[Pipeline] withDockerContainer
Jenkins seems to be running inside container d35f65a438579849028b27162bbd30067992b2fce2561d0efa65e2a4cca4a462
$ docker run -t -d -u 1000:2020 --network=sup_bridge -w /var/jenkins_home/workspace/hon-scripts_release_demo-scripts --volumes-from d35f65a438579849028b27162bbd30067992b2fce2561d0efa65e2a4cca4a462 -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** sup:python-3.6-slim cat
$ docker top 99cdb9d0b568fa04db05606dd47db42d5af3eb051ae8df7f18bcf98966453276 -eo pid,comm
[Pipeline] {
[Pipeline] withCredentials
Masking supported pattern matches of $user or $pass or $svcStgUser or $svcStgPass or $mongo or $mongo_url
[Pipeline] {
[Pipeline] sh
process apparently never started in /var/jenkins_home/workspace/hon-scripts_release_demo-scripts@tmp/durable-edbff6e4
(running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
$ docker stop --time=1 99cdb9d0b568fa04db05606dd47db42d5af3eb051ae8df7f18bcf98966453276
$ docker rm -f 99cdb9d0b568fa04db05606dd47db42d5af3eb051ae8df7f18bcf98966453276
[Pipeline] // withDockerContainer
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] End of Pipeline
ERROR: script returned exit code -2
Finished: FAILURE

我尝试在容器运行时登录到该容器,并且在运行ls时出现权限拒绝错误,

root@storage:/root $ docker exec -ti 99cdb9d0b568fa04db05606dd47db42d5af3eb051ae8df7f18bcf98966453276 bash
I have no name!@99cdb9d0b568:/var/jenkins_home/workspace/hon-scripts_release_demo-scripts$ ls
ls: cannot open directory '.': Permission denied
I have no name!@99cdb9d0b568:/var/jenkins_home/workspace/hon-scripts_release_demo-scripts$ 

在Jenkins容器中,我看到一切都很好,

root@storage:/root $ docker exec -ti jenkins bash
jenkins@d35f65a43857:/$ ls -l /var/jenkins_home/workspace/hon-scripts_release_demo-scripts
total 24
-rw-r--r--. 1 jenkins 2020 1171 Aug 22 06:40 Dockerfile
-rw-r--r--. 1 jenkins 2020 1231 Aug 23 06:37 Jenkinsfile
-rw-r--r--. 1 jenkins 2020  107 Aug 21 16:25 README.md
-rw-r--r--. 1 jenkins 2020  100 Aug 21 16:25 requirements.txt
-rw-r--r--. 1 jenkins 2020 2672 Aug 21 16:25 runner.py
-rw-r--r--. 1 jenkins 2020    9 Aug 21 16:25 xio-list.txt
jenkins@d35f65a43857:/$ id jenkins
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins)
jenkins@d35f65a43857:/$ 

容器详细信息,

root@storage:/apps/sup-docker-files $ docker inspect jenkins
[
    {
        "Id": "d35f65a438579849028b27162bbd30067992b2fce2561d0efa65e2a4cca4a462","Created": "2020-08-21T16:01:26.975885118Z","Path": "/sbin/tini","Args": [
            "--","/usr/local/bin/jenkins.sh"
        ],"State": {
            "Status": "running","Running": true,"Paused": false,"Restarting": false,"OOMKilled": false,"Dead": false,"Pid": 42107,"ExitCode": 0,"Error": "","StartedAt": "2020-08-23T06:42:15.242777419Z","FinishedAt": "2020-08-23T06:42:14.725898361Z"
        },"Image": "sha256:d5b43f2e4e274587e35c9a96c4a7126e8a038526179e33e03eca15885b6ea86d","ResolvConfPath": "/var/lib/docker/containers/d35f65a438579849028b27162bbd30067992b2fce2561d0efa65e2a4cca4a462/resolv.conf","HostnamePath": "/var/lib/docker/containers/d35f65a438579849028b27162bbd30067992b2fce2561d0efa65e2a4cca4a462/hostname","HostsPath": "/var/lib/docker/containers/d35f65a438579849028b27162bbd30067992b2fce2561d0efa65e2a4cca4a462/hosts","LogPath": "","Name": "/jenkins","RestartCount": 0,"Driver": "overlay2","MountLabel": "","ProcessLabel": "","AppArmorProfile": "","ExecIDs": [
            "a0cec19243e66453ebd98bd56080227c4b84ea7008f988463c109404192a0468"
        ],"HostConfig": {
            "Binds": [
                "/apps/sup-docker-files/jenkins:/var/jenkins_home:rw","/var/run/docker.sock:/var/run/docker.sock:rw"
            ],"ContainerIDFile": "","LogConfig": {
                "Type": "journald","Config": {}
            },"NetworkMode": "sup_bridge","PortBindings": {
                "50000/tcp": [
                    {
                        "HostIp": "","HostPort": "50000"
                    }
                ],"8080/tcp": [
                    {
                        "HostIp": "","HostPort": "8000"
                    }
                ]
            },"RestartPolicy": {
                "Name": "","MaximumRetryCount": 0
            },"AutoRemove": false,"VolumeDriver": "","VolumesFrom": [],"CapAdd": null,"CapDrop": null,"Dns": null,"DnsOptions": null,"DnsSearch": null,"ExtraHosts": null,"GroupAdd": null,"IpcMode": "","Cgroup": "","Links": null,"OomScoreAdj": 0,"PidMode": "","Privileged": true,"PublishAllPorts": false,"ReadonlyRootfs": false,"SecurityOpt": [
                "label=disable"
            ],"UTSMode": "","UsernsMode": "","ShmSize": 67108864,"Runtime": "docker-runc","ConsoleSize": [
                0,0
            ],"Isolation": "","CpuShares": 0,"Memory": 0,"NanoCpus": 0,"CgroupParent": "","BlkioWeight": 0,"BlkioWeightDevice": null,"BlkioDeviceReadBps": null,"BlkioDeviceWriteBps": null,"BlkioDeviceReadIOps": null,"BlkioDeviceWriteIOps": null,"CpuPeriod": 0,"CpuQuota": 0,"CpuRealtimePeriod": 0,"CpuRealtimeRuntime": 0,"CpusetCpus": "","CpusetMems": "","Devices": null,"DiskQuota": 0,"KernelMemory": 0,"MemoryReservation": 0,"MemorySwap": 0,"MemorySwappiness": -1,"OomKillDisable": false,"PidsLimit": 0,"Ulimits": null,"CpuCount": 0,"CpuPercent": 0,"IOMaximumIOps": 0,"IOMaximumBandwidth": 0
        },"GraphDriver": {
            "Name": "overlay2","Data": {
                "LowerDir": "/var/lib/docker/overlay2/ab66e81361bde255fbc1f1c07b0491bc50e5d0089bb50de7663ae76eec30e93c-init/diff:/var/lib/docker/overlay2/9399117d0334821a325394fb4400e506a3c95342b9f84f627bae7fc0f00c557b/diff:/var/lib/docker/overlay2/4ee0450a85bb94883d86217e6e477a058d78a1894883b49e76822fcac42d1fef/diff:/var/lib/docker/overlay2/955d3e785ce494c24230c829cba6d55ad30d24066b78473f688d14a33d86c51d/diff:/var/lib/docker/overlay2/68fb301072578685f05f722644ccbc96d686e2f5cf3df8fa49acc2242997cc4b/diff:/var/lib/docker/overlay2/7beae213d72e90260c6950dc7b46a61a9d8b0292dc7ce239fbe65a250604b8c7/diff:/var/lib/docker/overlay2/23b8c42f4af72826fc4fe4902772017887f8e24b2d52d7d552c9d65cb8f3c201/diff:/var/lib/docker/overlay2/a1f6e6ed7ce0c49cddea5366cb6cf93cf08fd53e4bb627b5ec265e8b633d552d/diff:/var/lib/docker/overlay2/135017c88a16e2771b2fd1a7258a4fd363d9415721c429539ef3f5ffc188ff95/diff:/var/lib/docker/overlay2/eb5df73b4cefe9363beaefb685554b171209d272154153e74d9ca3320cf25bd6/diff:/var/lib/docker/overlay2/800ac38cf9d797c5aedf8fcf9d31fa20b0d62a1befe43fa1101db0991a840426/diff:/var/lib/docker/overlay2/23b8c68e4587d1d17236ac90e5bc27fe42729017fafc5ee21a6111db93130d15/diff:/var/lib/docker/overlay2/cd365484f184147b216fa2958669bfa1a3fc46195dce1f47a241d38300687dfe/diff:/var/lib/docker/overlay2/fd0c78be3c352634fcbede164a69896bfa519e735610687e0acd4d599cdb821b/diff:/var/lib/docker/overlay2/2737db6b73657fb25875155997c28cbca39a62ae6a41e97fa0bd01c5ac568a5d/diff:/var/lib/docker/overlay2/772ab50e1dbb08318e95799450953a7bbb262e71f78e7dc9eb2ed27dda217bc6/diff:/var/lib/docker/overlay2/df7f9928a06fdb680d56b1c47c58c4d0af8e2b94749a9da327c84e180b4b1906/diff","MergedDir": "/var/lib/docker/overlay2/ab66e81361bde255fbc1f1c07b0491bc50e5d0089bb50de7663ae76eec30e93c/merged","UpperDir": "/var/lib/docker/overlay2/ab66e81361bde255fbc1f1c07b0491bc50e5d0089bb50de7663ae76eec30e93c/diff","WorkDir": "/var/lib/docker/overlay2/ab66e81361bde255fbc1f1c07b0491bc50e5d0089bb50de7663ae76eec30e93c/work"
            }
        },"Mounts": [
            {
                "Type": "bind","Source": "/apps/sup-docker-files/jenkins","Destination": "/var/jenkins_home","Mode": "rw","RW": true,"Propagation": "rprivate"
            },{
                "Type": "bind","Source": "/var/run/docker.sock","Destination": "/var/run/docker.sock","Propagation": "rprivate"
            }
        ],"Config": {
            "Hostname": "d35f65a43857","Domainname": "","User": "1000:2020","AttachStdin": false,"AttachStdout": false,"AttachStderr": false,"ExposedPorts": {
                "50000/tcp": {},"8080/tcp": {}
            },"Tty": false,"OpenStdin": false,"StdinOnce": false,"Env": [
                "PATH=/usr/local/openjdk-8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","LANG=C.UTF-8","JAVA_HOME=/usr/local/openjdk-8","JAVA_VERSION=8u265","JENKINS_HOME=/var/jenkins_home","JENKINS_SLAVE_AGENT_PORT=50000","REF=/usr/share/jenkins/ref","JENKINS_VERSION=2.251","JENKINS_UC=https://updates.jenkins.io","JENKINS_UC_EXPERIMENTAL=https://updates.jenkins.io/experimental","JENKINS_INCREMENTALS_REPO_MIRROR=https://repo.jenkins-ci.org/incrementals","COPY_REFERENCE_FILE_LOG=/var/jenkins_home/copy_reference_file.log"
            ],"Cmd": null,"Image": "hub.docker.prod.walmart.com/jenkins/jenkins:2.251-slim","Volumes": {
                "/var/jenkins_home": {},"/var/run/docker.sock": {}
            },"WorkingDir": "","Entrypoint": [
                "/sbin/tini","--","/usr/local/bin/jenkins.sh"
            ],"OnBuild": null,"Labels": {
                "com.docker.compose.config-hash": "8262323b7455e26e006d5a9622c59c762a8ee8ac5d7abec9f08a75af879ff6f7","com.docker.compose.container-number": "1","com.docker.compose.oneoff": "False","com.docker.compose.project": "sup-docker-files","com.docker.compose.service": "jenkins","com.docker.compose.version": "1.21.2"
            }
        },"NetworkSettings": {
            "Bridge": "","SandboxID": "0bdefa52a1fdc80b96879599f5c972af9d14773ab53559de1d0130470a13dd51","HairpinMode": false,"LinkLocalIPv6Address": "","LinkLocalIPv6PrefixLen": 0,"Ports": {
                "50000/tcp": [
                    {
                        "HostIp": "0.0.0.0","8080/tcp": [
                    {
                        "HostIp": "0.0.0.0","SandboxKey": "/var/run/docker/netns/0bdefa52a1fd","SecondaryIPAddresses": null,"SecondaryIPv6Addresses": null,"EndpointID": "","Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"IPAddress": "","IPPrefixLen": 0,"IPv6Gateway": "","MacAddress": "","Networks": {
                "sup_bridge": {
                    "IPAMConfig": null,"Aliases": [
                        "jenkins","d35f65a43857"
                    ],"NetworkID": "853e635af231810586eec328f0a6175355095af839e2ea67ba298e3d08df96a9","EndpointID": "395e46f06194676038287a9e4364bc6466ace54ab81eb5cd28c6a6a7ee613ea8","Gateway": "172.19.0.1","IPAddress": "172.19.0.2","IPPrefixLen": 16,"MacAddress": "02:42:ac:13:00:02"
                }
            }
        }
    }
]
root@storage:/apps/sup-docker-files $ 

sup:python-3.6-slim的Docker文件

# https://www.debian.org/releases/buster/ - Debian buster
FROM python:3.6-slim


# Installing the required packages
RUN apt-get update \
    && apt-get install -yq git \
    && apt-get autoremove \
    && apt-get clean \
    && rm -rf /var/lib/apt


# upgrading pip to latest version
RUN pip install --upgrade pip

我的Macbook上的相同设置运行正常,没有任何问题,并按预期完成了工作。

由于安全原因,我无法禁用selinux。

请帮帮我!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-