Replies: 1 comment
-
|
This is a classic Docker permissions issue! The container is running as a non-root user but trying to write to a directory owned by root. The FixYou have a few options: Option 1: Fix the host directory permissions# Find what user ID the container runs as (often 1000 or node)
docker exec <container_name> id
# Then on your host, change the config folder ownership
sudo chown -R 1000:1000 ./configOption 2: Use Docker's user flagdocker run -u $(id -u):$(id -g) -v ./config:/lunar/packages/mcpx-server/config ...Option 3: Make it world-writable (less secure, but quick)chmod 777 ./configWhy This HappensDocker containers often run as a specific user (like Quick Debug# Check container user
docker exec <container> whoami
docker exec <container> id
# Check config folder permissions
ls -la ./configLet me know if one of these solutions works! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
So I followed the https://docs.lunar.dev/mcpx/get_started and basically did this:
mkdir config
Then realized the docs were just saying where the files go and that they will be created during setup. I can access the control plane but when adding a server I get permission errors:
mcpx | 2026-01-04T20:22:54.322Z [mcpx] ERROR: Failed to create target server memory component="ControlPlaneService" error={"errorName":"Error","errorMessage":"Unknown error ({\"errorName\":\"Error\",\"errorMessage\":\"EACCES: permission denied, open '/lunar/packages/mcpx-server/config/mcp.json'\",\"errorStack\":\"Error: EACCES: permission denied, open '/lunar/packages/mcpx-server/config/mcp.json'\\n at Object.writeFileSync (node:fs:2426:20)\\n at ServerConfigManager.writeTargetServers (file:///lunar/packages/mcpx-server/dist/services/server-config-manager.js:103:16)\\n at TargetClients.addClient (file:///lunar/packages/mcpx-server/dist/services/target-clients.js:144:34)\\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\\n at async ControlPlaneService.addTargetServer (file:///lunar/packages/mcpx-server/dist/services/control-plane-service.js:106:13)\\n at async handleWsEvent (file:///lunar/packages/mcpx-server/dist/server/ws-ui.js:135:36)\"})","errorStack":"Error: Unknown error ({\"errorName\":\"Error\",\"errorMessage\":\"EACCES: permission denied, open '/lunar/packages/mcpx-server/config/mcp.json'\",\"errorStack\":\"Error: EACCES: permission denied, open '/lunar/packages/mcpx-server/config/mcp.json'\\n at Object.writeFileSync (node:fs:2426:20)\\n at ServerConfigManager.writeTargetServers (file:///lunar/packages/mcpx-server/dist/services/server-config-manager.js:103:16)\\n at TargetClients.addClient (file:///lunar/packages/mcpx-server/dist/services/target-clients.js:144:34)\\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\\n at async ControlPlaneService.addTargetServer (file:///lunar/packages/mcpx-server/dist/services/control-plane-service.js:106:13)\\n at async handleWsEvent (file:///lunar/packages/mcpx-server/dist/server/ws-ui.js:135:36)\"})\n at makeError (file:///lunar/packages/toolkit-core/dist/data/errors.js:5:16)\n at loggableError (file:///lunar/packages/toolkit-core/dist/logging/errors.js:3:19)\n at ControlPlaneService.addTargetServer (file:///lunar/packages/mcpx-server/dist/services/control-plane-service.js:116:27)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async handleWsEvent (file:///lunar/packages/mcpx-server/dist/server/ws-ui.js:135:36)"} data={"type":"stdio","args":["-y","@modelcontextprotocol/server-memory"],"command":"npx","icon":"#303952","name":"memory"}I have successfully mounted the created directory as a volume. Since I ran this container as root the folder permissions are basically root:root - what is the user ID which needs read/wriote access to the config folder?
Beta Was this translation helpful? Give feedback.
All reactions