大佬教程收集整理的这篇文章主要介绍了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,请注明来意。