fix: simplify CI workflows to run directly on runner without nested containers
Run Tests / Backend Tests (push) Has been cancelled
Run Tests / Frontend Tests (push) Has been cancelled
Run Tests / Test Summary (push) Has been cancelled
Deploy Dashboard (Dev) / deploy-dev (push) Failing after 15m27s
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Has started running

- Remove container blocks causing Docker-in-Docker permission issues
- Use actions/checkout@v4 instead of manual git cloning
- Use actions/setup-python@v5 and actions/setup-node@v4 for clean environments
- Remove nsenter workarounds and mount complexity
- Fix volume paths to use /volume1/docker/* directly
- Add /volume1/docker/claude-dev to runner valid_volumes config

This eliminates 20+ commits of permission/namespace hacks by letting
workflows run directly in the runner's environment which already has
Docker access and proper volume mounts configured.
This commit is contained in:
Gan, Jimmy
2026-04-04 16:00:49 +08:00
parent 87af015ef1
commit 55d3348085
3 changed files with 25 additions and 55 deletions
+7 -25
View File
@@ -13,19 +13,9 @@ concurrency:
jobs:
deploy-dev:
runs-on: ubuntu-latest
container:
options: --pid=host
volumes:
- /var/packages/ContainerManager/target/usr/bin/docker:/usr/bin/docker
- /volume1/docker/nas-dashboard:/nas-dashboard
steps:
- name: Checkout exact commit
run: |
set -euo pipefail
git init .
git remote add origin http://gitea:3000/jimmy/nas-tools.git
git fetch --depth 1 origin "$GITHUB_SHA"
git checkout --detach FETCH_HEAD
- name: Checkout repository
uses: actions/checkout@v4
- name: Warm mirror cache for base images
run: |
set -u
@@ -61,19 +51,11 @@ jobs:
export DOCKER_API_VERSION=1.43
DOCKER_BUILDKIT=0 docker build --cache-from nas-dashboard-dev:latest -t nas-dashboard-dev:latest dashboard/
- name: Sync runtime compose file
run: cp dashboard/docker-compose.dev.yml /nas-dashboard/docker-compose.dev.yml
run: cp dashboard/docker-compose.dev.yml /volume1/docker/nas-dashboard/docker-compose.dev.yml
- name: Deploy dev
run: |
set -euo pipefail
export DOCKER_API_VERSION=1.43
# Write deploy script to mounted volume (accessible from both container and host)
cat > /nas-dashboard/deploy.sh << 'EOF'
#!/bin/bash
set -euo pipefail
export DOCKER_API_VERSION=1.43
cd /volume1/docker/nas-dashboard
/volume1/@appstore/ContainerManager/usr/bin/docker rm -f nas-dashboard-dev || true
/volume1/@appstore/ContainerManager/usr/bin/docker compose -f docker-compose.dev.yml up -d --pull never
EOF
chmod +x /nas-dashboard/deploy.sh
# Execute script on host using the host path
nsenter -t 1 -m -n /volume1/docker/nas-dashboard/deploy.sh
cd /volume1/docker/nas-dashboard
docker rm -f nas-dashboard-dev || true
docker compose -f docker-compose.dev.yml up -d --pull never