You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CircleCI中Docker的MySQL与PHP镜像创建失败问题排查

解决CircleCI配置里的镜像启动报错问题

咱们先逐个拆解你遇到的两个错误,然后给出对应的修复方案:

1. PHP镜像的X11目录创建失败

这个报错$_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created,本质是因为你用的circleci/php:7.1-apache-node-browsers镜像带了浏览器相关依赖,启动时会尝试创建X11的临时目录,但CircleCI默认用非root的circleci用户跑容器,没权限创建这个目录。

解决办法有两种:

  • 如果你不需要浏览器环境(比如不用跑前端自动化测试),可以换成不带-browsers后缀的PHP镜像,比如circleci/php:7.1-apache-node,直接避开这个问题。
  • 如果必须保留浏览器环境,就在job的步骤里先手动创建目录并修改权限,或者在镜像启动命令里提前处理:
    比如在docker配置里给PHP镜像加个command:
    - image: circleci/php:7.1-apache-node-browsers
      command: sudo mkdir -p /tmp/.X11-unix && sudo chmod 1777 /tmp/.X11-unix && apache2-foreground
    
    或者在job的steps里先执行:
    steps:
      - run: sudo mkdir -p /tmp/.X11-unix && sudo chmod 1777 /tmp/.X11-unix
      # 后续步骤...
    

2. MySQL的root用户创建报错

ERROR 1396 (HY000) at line 1: Operation CREATE USER failed for 'root'@'%'这个错是因为circleci/mysql:8.0.4镜像默认已经给你创建好root用户了,而且允许从任意主机访问,你再手动执行创建root用户的SQL就会冲突。

另外,CircleCI的MySQL镜像支持用环境变量自动初始化,你不需要手动创建用户:

  • 用MYSQL_ROOT_PASSWORD来设置root用户的密码(你原来写的MYSQL_PASSWORD不对,这个是给普通用户用的)
  • MYSQL_DATABASE会自动帮你创建指定的数据库

所以你需要调整环境变量配置,把MySQL镜像的环境变量改对,同时去掉手动创建root用户的步骤。

修复后的完整配置参考

defaults: &defaults
  docker:
    - image: circleci/node:lts-stretch
    - image: circleci/php:7.1-apache-node-browsers
      # 提前处理X11目录权限,再启动apache
      command: sudo mkdir -p /tmp/.X11-unix && sudo chmod 1777 /tmp/.X11-unix && apache2-foreground
    - image: circleci/mysql:8.0.4
      environment:
        MYSQL_ROOT_PASSWORD: rpgjs_test_password
        MYSQL_DATABASE: rpgjs_test
  environment:
    MYSQL_HOST: 127.0.0.1
    MYSQL_DB: rpgjs_test
    MYSQL_USER: root
    MYSQL_PASSWORD: rpgjs_test_password
  working_directory: ~/repo

额外小提示

如果你的测试需要单独的数据库用户,别去碰root用户,创建一个普通用户就行了,记得加IF NOT EXISTS避免重复创建的错误:

CREATE USER IF NOT EXISTS 'test_user'@'%' IDENTIFIED BY 'test_pass';
GRANT ALL PRIVILEGES ON rpgjs_test.* TO 'test_user'@'%';
FLUSH PRIVILEGES;

内容的提问来源于stack exchange,提问作者enbermudas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 22:27:38