devcontainers / ci

A GitHub Action and Azure DevOps Task designed to simplify using Dev Containers (https://containers.dev) in CI/CD systems.
MIT License
302 stars 46 forks source link

ENOENT on self-hosted runner #240

Closed max06 closed 1 year ago

max06 commented 1 year ago

Good morning,

last night I set up a self-hosted github runner and tried to build/use a devcontainer with this action. After solving a bunch of dependency issues (nodejs/npm, docker) I ended up with:

Run devcontainers/ci@v0.3
  with:
    imageName: max06/infra
    runCmd: ansible-playbook -i inventories/home playbooks/test.yml
    checkoutPath: .
    push: filter
    eventFilterForPush: push
    skipContainerUserIdUpdate: false
    noCache: false
Starting...
Installing @devcontainers/cli...
** Installing @devcontainers/cli
/usr/bin/bash -c npm install -g @devcontainers/cli@0

changed 3 packages in 1s
Adding --cache-from max06/infra:latest to build args
🏗️ build container
  About to run devcontainer build --workspace-folder /home/max06/actions-runner/_work/infra/infra --image-name max06/infra:latest --cache-from max06/infra:latest
Error: spawn devcontainer ENOENT

Executing the devcontainer build...-command manually works without issues, it just doesn't play nice within the self-hosted runner.

The workflow looks as followed:

on:
  push:
    branches:
      - main

jobs:
  # run ansiible
  ansible:
    runs-on: [self-hosted, docker1]
    # container:
    #   image: catthehacker/ubuntu:act-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Run Ansible Playbook
        uses: devcontainers/ci@v0.3
        with:
          imageName: max06/infra
          runCmd: ansible-playbook -i inventories/home playbooks/test.yml

Did I miss something obvious?

max06 commented 1 year ago

Nevermind, I managed to let it run inside of a docker container with support for docker-from-docker.