程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied?

开发过程中遇到jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied的问题如何解决?下面主要结合日常开发的经验,给出你关于jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied的解决方法建议,希望对你解决jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied有所启发或帮助;

如何解决这个问题?

这是我的错误:

Got permission denIEd while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/auth: dial unix /var/run/docker.sock: connect: permission denIEd

!!!仅在 php-project 的工作中失败,Java-projects 的工作正常。 !!!

请检查,还使用了配置:

dockerhub_private = '5555555555.dkr.ecr.eu-West-1.amazonaws.com'

pipeline {
    options {
        durabilityHint 'PERFORMANCE_OPTIMIZED'

        builddiscarder logrotator(daysToKeepStr: '6',numToKeepStr: '30')
    }
    agent {
        label 'ec2spot-t3large-php74'
    }

    parameters {
        BooleanParam(name: 'updatE_DOCKER_IMAGES',DefaultValue: true,description: 'update Docker images?')
    }

    stages {
        stage('Base Docker') {
            when {
                beforeAgent true
                anyOf {
                    Expression { params.updatE_DOCKER_IMAGES }
                }
            }
            steps {
                script {
                    GIT_COMMIT = sh(script: 'git rev-parse head',returnStdout: truE).trim()
                    GIT_BRANCH = sh(script: 'git rev-parse --abbrev-ref head',returnStdout: truE).trim()
                }

                sh "df -h"

                withAWS(credentials: 'jeNKINS_AWS_ACCESS',region: 'eu-West-1') {
                    sh ecrLogin()
                }

                withCredentials([
                    usernamepassword(
                        credentialsID: 'dockerhub_company_',usernameVariable: 'DOCKER_USERname',passwordVariable: 'DOCKER_password'
                    )
                ]) {
                    sh "docker login -u $DOCKER_USERname -p $DOCKER_password"
                }

                pullFrompublicAndPushtoprivate([
                    'external/php'
                ],params.updatE_DOCKER_IMAGES)

                sh """
                    docker logout; \\
                    df -h; \\
                    docker info; \\
                    top -b -n1 -o %MEM; \\
                    docker images | grep company_r;
                  """
            }

             post {
                 unsuccessful {
                     slackSend tokenCredentialID: 'slack_y_core_team_token',color: 'danger',teamDomain: 'company-it',chAnnel: '#x_team_ci',message: "DOCKER PulL Failed: <${BUILD_URL}|${BUILD_ID}>,branch: ${env.GIT_BRANCH}"
                 }
             }
        }

        stage('Build') {
            steps {
                 githubNotify status: 'PENDING',description: "BUILD $BUILD_ID has started",context: 'jenkins/build',targetUrl: "$BUILD_URL",credentialsID: 'company_msbot',account: 'company',repo: 'y_php_project',sha: "${env.GIT_COMMIT}"
                sh """
                    echo RELEASE_VERSION=`date +"%Y%m%d"`-r$BUILD_numbER; \\
                    echo REVISION=$RELEASE_VERSION; \\
                    echo DOCKER_HOST=tcp://localhost:4243; \\
                    echo $REVISION>$WORKSPACE/Nginx/version.HTML; \\
                    echo IMAGE_name=company_r/cx-y_php_project; \\

                    cd $WORKSPACE; \\
                    docker build -t $IMAGE_name:$REVISION .; \\

                    docker push $IMAGE_name:$REVISION; \\
                    docker tag  $IMAGE_name:$REVISION $IMAGE_name:latest; \\
                    docker push $IMAGE_name:latest; \\

                    PUSH_RETRY_COUNT=15; \\
                    PUSH_RETRY_DELAY=30; \\
                    retry "docker push $IMAGE_name:latest" $PUSH_RETRY_COUNT $PUSH_RETRY_DELAY; \\
                    docker tag  $IMAGE_name:latest $IMAGE_name:$REVISION; \\
                    retry "docker push $IMAGE_name:$REVISION" $PUSH_RETRY_COUNT $PUSH_RETRY_DELAY; \\
                    #remove old images; \\
                    set +e; \\
                    docker images | grep "^<none>" | awk '{system("docker rmi -f "\$3)}'; \\
                    docker images | grep $IMAGE_name | grep -v "minute" | grep -v "second" | awk '{system("docker rmi -f "\$3)}'; \\
                    set -e; \\
                """
                sh script: 'sar -A',label: 'System Stats'
            }

            post {
                success {
                    githubNotify status: 'succesS',description: "BUILD $BUILD_ID has finished",sha: "${env.GIT_COMMIT}"
                    slackSend tokenCredentialID: 'slack_y_core_team_token',message: "BUILD SUCCED: <${BUILD_URL}|${BUILD_ID}>,branch: ${env.GIT_BRANCH}"
                }

                unsuccessful {
                    githubNotify status: 'ERROR',description: "BUILD $BUILD_ID has Failed",sha: "${env.GIT_COMMIT}"

                    slackSend tokenCredentialID: 'slack_y_core_team_token',message: "BUILD Failed: <${BUILD_URL}|${BUILD_ID}>,branch: ${env.GIT_BRANCH}"
                }
            }
        }
    }
}

def getnameInPrivate(imagE) {
    if (image.startsWith('company_r/')) {
        image
    } else {
        "external/${image.split('/')[-1]}"
    }
}

voID pullFrompublicAndPushtoprivate(images,updateFrompubliC) {
    for (image in images) {
        def private_image = getnameInPrivate(imagE)

        sh script: """\
              docker pull ${dockerhub_privatE}/${private_imagE} &&
                docker tag ${dockerhub_privatE}/${private_imagE} ${imagE};
              ECR_PulL_CODE=\$?;
              if [ "\$ECR_PulL_CODE" != "0" ] || [ "${updateFrompublic}" = "true" ]
              then
                docker pull ${imagE}; \\
                docker tag ${imagE} ${dockerhub_privatE}/${private_imagE}; \\
                docker push ${dockerhub_privatE}/${private_imagE};
              fi
            """.StripIndent(),label: "Pull & Push ${imagE}"
    }
}

我也会提供 Dockerfile

FROM php:7.2-fpm

copY composer.lock composer.Json /var/www/

workdir /var/www

RUN apt-get update && apt-get install -y \
    build-essential \
    mariadb-clIEnt \
    libpng-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    locales \
    zip \
    jpegoptim optipng pngquant gifsicle \
    vim \
    unzip \
    git \
    curl

RUN apt-get clean && rm -rf /var/lib/apt/Lists/*

RUN docker-php-ext-install pdo_MysqL mbString zip exif pcntl
RUN docker-php-ext-configure gd --with-gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/
RUN docker-php-ext-install gd

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

RUN groupadd -g 1000 www
RUN useradd -u 1000 -ms /bin/bash -g www www

copY . /var/www

RUN composer install

copY docker/start.sh /usr/local/bin/start
RUN chmod 777 /usr/local/bin/start

RUN chown www:www /var/www

RUN chown -R www:www-data storage
RUN chown -R www:www-data bootstrap/cache
RUN chmod -R 775 storage
RUN chmod -R 775 bootstrap/cache

USER www

EXPOSE 9000
CMD ["/usr/local/bin/start"]

还有什么值得一提的?

也许,插件?但看起来问题只针对这份工作。

或服务器配置/版本。

解决方法

该错误表示您当前的用户无法访问 docker 引擎,因为您缺乏访问 unix 套接字与引擎通信的权限。@H_489_38@ 为了解决这个问题: 在任何 sHell 中运行以下命令:@H_489_38@sudo usermod -a -G docker $USER@H_489_38@sudo usermod -a -G docker jenkins@H_489_38@注意:完全重启机器和詹金斯。@H_489_38@ 此步骤后:完全退出您的帐户并重新登录。

更多信息:https://docs.docker.com/ENGIne/install/linux-posTinstall/

大佬总结

以上是大佬教程为你收集整理的Jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied全部内容,希望文章能够帮你解决Jenkins + AWS 代理 = 仅在 php-project 的工作中出错,Java-projects 的工作正常工作:/var/run/docker.sock: connect: permission denied所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。