Agentic workflow on self hosted ubuntu node: error .npmrc is read only....
- Dominant language
- Go
- Stars
- 5.1k
- Forks
- 541
- Avg merge
- 5h 46m
- Merged PRs (30d)
- 760
Description
Hello,
I got self hosted runner on ubuntu. When I launch a pretty dumb agentic workflow:
```
description: >
validate pertinent issue.
engine: copilot
labels: [automation]
runs-on: mine
runs-on-slim: mine
runner:
topology: arc-dind
on:
issues:
types: [opened, labeled]
reaction: "eyes"
status-comment: true
permissions:
contents: read
issues: read
pull-requests: read
tools:
github:
toolsets: [default]
bash: ["curl"]
safe-outputs:
add-comment:
max: 1
hide-older-comments: true
add-labels:
allowed:
- "testing"
max: 1
remove-labels:
allowed:
- "testing"
max: 1
data: true
threat-detection: false
---
# issue validator
Asses if a newly opened issue is for testing purposes or not. If it is, add a label "testing".
In all situations, add a comment "reviewed by issue-filter workflow".
```
Without the node topoligy 'arc-dind' there is an issue (need a glibc not a musl lib) linked to the docker dind beeing alpine (docker provide only this one so ok, switching to 'arc dind' topology.
but doing that, I switch to another error:
```
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/dev/null" to rootfs at "/host/home/runner/actions-runner/_work/_temp/gh-aw/home/.npmrc": create mountpoint for /host/home/runner/actions-runner/_work/_temp/gh-aw/home/.npmrc mount: make mountpoint "/host/home/runner/actions-runner/_work/_temp/gh-aw/home/.npmrc": openat .npmrc: read-only file system
[ERROR] Failed to start containers: Error: Command failed with exit code 1: docker compose up -d --pull never
at JB (/home/runner/.local/lib/awf/awf-bundle.js:360:57)
at /home/runner/.local/lib/awf/awf-bundle.js:360:10493
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async pT (/home/runner/.local/lib/awf/awf-bundle.js:818:2343)
at async b5 (/home/runner/.local/lib/awf/awf-bundle.js:818:2955)
at async Object.A5 [as startContainers] (/home/runner/.local/lib/awf/awf-bundle.js:820:3309)
at async LY (/home/runner/.local/lib/awf/awf-bundle.js:825:15989)
at async e. (/home/runner/.local/lib/awf/awf-bundle.js:1434:302) {
shortMessage: 'Command failed with exit code 1: docker compose up -d --pull never',
command: 'docker compose up -d --pull never',
escapedCommand: 'docker compose up -d --pull never',
exitCode: 1,
signal: undefined,
signalDescription: undefined,
stdout: undefined,
stderr: undefined,
failed: true,
timedOut: false,
isCanceled: false,
killed: false
}
[ERROR] Fatal error: Error: Command failed with exit code 1: docker compose up -d --pull never
at JB (/home/runner/.local/lib/awf/awf-bundle.js:360:57)
at /home/runner/.local/lib/awf/awf-bundle.js:360:10493
at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
at async pT (/home/runner/.local/lib/awf/awf-bundle.js:818:2343)
at async b5 (/home/runner/.local/lib/awf/awf-bundle.js:818:2955)
at async Object.A5 [as startContainers] (/home/runner/.local/lib/awf/awf-bundle.js:820:3309)
at async LY (/home/runner/.local/lib/awf/awf-bundle.js:825:15989)
at async e. (/home/runner/.local/lib/awf/awf-bundle.js:1434:302) {
shortMessage: 'Command failed with exit code 1: docker compose up -d --pull never',
command: 'docker compose up -d --pull never',
escapedCommand: 'docker compose up -d --pull never',
exitCode: 1,
signal: undefined,
signalDescription: undefined,
stdout: undefined,
stderr: undefined,
failed: true,
timedOut: false,
isCanceled: false,
killed: false
}
[INFO] Stopping containers...
```
In the docker compose file, I was able to see there is some mount:
```
...
- /dev/null:/home/runner/actions-runner/_work/_temp/gh-aw/home/.docker/config.json:ro
- /dev/null:/home/runner/actions-runner/_work/_temp/gh-aw/home/.npmrc:ro
- /dev/null:/home/runner/actions-runner/_work/_temp/gh-aw/home/.composer/auth.json:ro
...
- /dev/null:/host/home/runner/actions-runner/_work/_temp/gh-aw/home/.docker/config.json:ro
- /dev/null:/host/home/runner/actions-runner/_work/_temp/gh-aw/home/.npmrc:ro
- /dev/null:/host/home/runner/actions-runner/_work/_temp/gh-aw/home/.composer/auth.json:ro
...
```
but I'm not sure why the system complain about .npmrc specifically. Any advice / solution ?
Contributor guide
Research direction
Start with the generated Docker Compose file for the arc-dind topology and inspect the /dev/null mounts for .npmrc, .docker/config.json, and .composer/auth.json. Reproduce the workflow on a self-hosted Ubuntu runner with the provided configuration, then trace why the .npmrc mountpoint is treated as read-only. Done means the containers start successfully without this mount error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, docker-compose, github-actions, ubuntu
- Domain
- ci-cd, devops, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100