You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Docker Compose部署LinuxServer版MySQL Workbench时启动报错求助

使用Docker Compose部署LinuxServer版MySQL Workbench时启动报错求助

看起来你遇到的是LinuxServer版MySQL Workbench容器启动时的X11相关权限问题,我来帮你分析下可能的原因和解决办法:

你的Docker Compose配置

version: "2.1"

services:
  mysql-workbench:
    image: lscr.io/linuxserver/mysql-workbench:latest
    container_name: mysql-workbench
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - /path/to/config:/config
    ports:
      - 3000:3000
      - 3001:3001
    cap_add:
      - IPC_LOCK
    restart: unless-stopped

你遇到的启动错误日志

mysql-workbench    | [custom-init] No custom files found, skipping...
mysql-workbench    | _XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
mysql-workbench    |
mysql-workbench    | Xvnc KasmVNC 1.2.0 - built Oct 26 2023 21:53:23
mysql-workbench    | Copyright (C) 1999-2018 KasmVNC Team and many others (see README.me)
mysql-workbench    | See http://kasmweb.com for information on KasmVNC.
mysql-workbench    | Underlying X server release 12014000, The X.Org Foundation
mysql-workbench    |
mysql-workbench    | [ls.io-init] done.
mysql-workbench    | Obt-Message: Xinerama extension is not present on the server

问题分析与解决方法

核心错误是_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.——容器内以PUID=1000的非root用户运行时,没有权限创建X服务依赖的/tmp/.X11-unix目录,这会影响KasmVNC的正常启动。另外Obt-Message: Xinerama extension is not present on the server只是一个警告,不会导致容器启动失败,可以暂时忽略。

推荐的解决步骤:

  1. 挂载宿主机的X11目录并设置权限

    • 先在宿主机执行以下命令,确保/tmp/.X11-unix目录存在且权限正确:
      sudo mkdir -p /tmp/.X11-unix && sudo chmod 1777 /tmp/.X11-unix
      
    • 修改你的Docker Compose配置,在volumes部分添加一行挂载:
      volumes:
        - /path/to/config:/config
        - /tmp/.X11-unix:/tmp/.X11-unix
      
    • 重新启动容器:docker-compose down && docker-compose up -d
  2. 临时用root用户运行排查问题(不推荐长期使用)
    如果上面的方法没解决,可以临时将环境变量里的PUIDPGID改成0(root用户),重启容器看是否能正常启动:

    environment:
      - PUID=0
      - PGID=0
      - TZ=Etc/UTC
    

    如果能正常启动,说明确实是非root用户的权限问题,再改回PUID=1000并确保挂载的目录权限正确。

  3. 检查时区配置(可选)
    虽然和当前错误无直接关联,但如果你的宿主机时区不是Etc/UTC,建议改成和宿主机一致的时区(比如TZ=Asia/Shanghai),避免潜在的时间同步问题。

备注:内容来源于stack exchange,提问作者servusMori

火山引擎 最新活动