更新CircleCI构建工具镜像至PHP8.1版本后遇权限拒绝错误
解决CircleCI构建时
mkdir /var/www权限拒绝问题 问题原因
升级到quay.io/pantheon-public/build-tools-ci:8.x-php8.1镜像后,镜像默认以非root用户运行,而/var/www目录属于root权限,普通用户无法直接创建,导致Checkout Code阶段报错。旧的7.4.x镜像可能默认使用root用户,因此没有这个问题。
解决方案
方案1:切换到用户有权限的工作目录
在.circleci/config.yml中指定工作目录为当前用户可读写的路径(比如~/project),示例:
version: 2.1 jobs: configure_env_vars: working_directory: ~/project docker: - image: quay.io/pantheon-public/build-tools-ci:8.x-php8.1 steps: - checkout # 后续步骤...
方案2:提前创建并授权/var/www目录
如果必须使用/var/www作为工作目录,在checkout步骤前添加sudo创建目录并修改权限的操作:
steps: - run: name: Setup /var/www directory command: | sudo mkdir -p /var/www sudo chown -R $USER:$USER /var/www - checkout # 后续步骤...
方案3:对齐官方示例配置
参考官方Drops 8 Composer示例的配置逻辑,确保工作目录和权限设置与新镜像兼容,避免直接使用系统级受限目录。
内容的提问来源于stack exchange,提问作者matthew.collins
相关产品推荐
相关产品推荐

