Giter VIP home page Giter VIP logo

docker_images's Issues

Arm64 images

Would it be possible to publish similar images for arm64? It seems like your script would allow it pretty easily, and that would help a lot people running act on Arm macs.

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

Hello,

I'm trying to use this image in a gitea act runner as image to build a docker container with. But if I start this image with for example the following command: docker run --rm -it ghcr.io/catthehacker/ubuntu:act-latest, I'm getting this error message, if I run docker ps for example:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Only if I pass the docker.sock as a volume to the container, I can get a valid result, but I'm not sure if that's what I'm supposed to do.

Could someone tell me what is exactly needed to use docker from inside this image?

Integrate docker-compose into ubuntu:act image

I know it's a balancing act of what to include in the runner image and what not. But I guess docker-compose is a quite often used tool when setting up CI for a full stack application. Currently, only the large runner image has this on board, but the size is immense. Any chance to have docker-compose integrated in the medium runner image? As workaround for now I use a custom image (mentioned here): act -P ubuntu-latest=lucasalt/act_base:latest

linker `cc` not found

Actions file (snippet):

name: Continuous Integration

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Configure rustup
        uses: actions-rs/toolchain@v1
        with:
            profile: minimal
            toolchain: nightly

      - name: cargo run glacier
        run: cargo run

act output:

$ act
[Continuous Integration/build   ] ๐Ÿš€  Start image=catthehacker/ubuntu:act-latest
[Continuous Integration/build   ]   ๐Ÿณ  docker run image=catthehacker/ubuntu:act-latest platform=linux/amd64 entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Continuous Integration/build   ]   ๐Ÿณ  docker cp src=/home/fanninpm/Documents/GitHub/glacier/. dst=/home/fanninpm/Documents/GitHub/glacier
[Continuous Integration/build   ] โญ  Run actions/checkout@v2
[Continuous Integration/build   ]   โœ…  Success - actions/checkout@v2
[Continuous Integration/build   ] โญ  Run Configure rustup
[Continuous Integration/build   ]   โ˜  git clone 'https://github.com/actions-rs/toolchain' # ref=v1
[Continuous Integration/build   ]   ๐Ÿณ  docker cp src=/home/fanninpm/.cache/act/actions-rs-toolchain@v1 dst=/actions/
[Continuous Integration/build   ]   ๐Ÿ’ฌ  ::debug::using toolchain from input: nightly
[Continuous Integration/build   ]   ๐Ÿ’ฌ  ::debug::Unable to find "rustup" executable, installing it now. Reason: Error: Unable to locate executable file: rustup. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.
[Continuous Integration/build   ]   ๐Ÿ’ฌ  ::debug::Downloading https://sh.rustup.rs
[Continuous Integration/build   ]   ๐Ÿ’ฌ  ::debug::Destination /tmp/27f109d1-a3ee-4ebe-be6e-0e31ba5aeda9
[Continuous Integration/build   ]   ๐Ÿ’ฌ  ::debug::download complete
[Continuous Integration/build   ]   ๐Ÿ’ฌ  ::debug::Executing chmod 755 on the /tmp/27f109d1-a3ee-4ebe-be6e-0e31ba5aeda9
[Continuous Integration/build   ]   | [command]/tmp/27f109d1-a3ee-4ebe-be6e-0e31ba5aeda9 --default-toolchain none -y
[Continuous Integration/build   ]   | info: downloading installer
[Continuous Integration/build   ]   | error: $HOME differs from euid-obtained home directory: you may be using sudo
[Continuous Integration/build   ]   | error: $HOME directory: /home/fanninpm/Documents/GitHub/home
[Continuous Integration/build   ]   | error: euid-obtained home directory: /root
[Continuous Integration/build   ]   | info: profile set to 'default'
[Continuous Integration/build   ]   | info: default host triple is x86_64-unknown-linux-gnu
[Continuous Integration/build   ]   | info: skipping toolchain installation
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | Rust is installed now. Great!
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | To get started you may need to restart your current shell.
[Continuous Integration/build   ]   | This would reload your PATH environment variable to include
[Continuous Integration/build   ]   | Cargo's bin directory ($HOME/.cargo/bin).
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | To configure your current shell, run:
[Continuous Integration/build   ]   | source $HOME/.cargo/env
[Continuous Integration/build   ]   โš™  ::add-path:: /home/fanninpm/Documents/GitHub/home/.cargo/bin
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/rustup show
[Continuous Integration/build   ]   | Default host: x86_64-unknown-linux-gnu
[Continuous Integration/build   ]   | rustup home:  /home/fanninpm/Documents/GitHub/home/.rustup
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'
[Continuous Integration/build   ]   | info: latest update on 2021-06-05, rust version 1.54.0-nightly (c79419af0 2021-06-04)
[Continuous Integration/build   ]   | info: downloading component 'cargo'
[Continuous Integration/build   ]   | info: downloading component 'clippy'
[Continuous Integration/build   ]   | info: downloading component 'rust-docs'
[Continuous Integration/build   ]   | info: downloading component 'rust-std'
[Continuous Integration/build   ]   | info: downloading component 'rustc'
[Continuous Integration/build   ]   | info: downloading component 'rustfmt'
[Continuous Integration/build   ]   | info: installing component 'cargo'
[Continuous Integration/build   ]   | info: installing component 'clippy'
[Continuous Integration/build   ]   | info: installing component 'rust-docs'
[Continuous Integration/build   ]   | info: installing component 'rust-std'
[Continuous Integration/build   ]   | info: installing component 'rustc'
[Continuous Integration/build   ]   | info: installing component 'rustfmt'
[Continuous Integration/build   ]   | nightly-x86_64-unknown-linux-gnu (overridden by '/home/fanninpm/Documents/GitHub/glacier/rust-toolchain')
[Continuous Integration/build   ]   | rustc 1.54.0-nightly (c79419af0 2021-06-04)
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/rustup -V
[Continuous Integration/build   ]   | rustup 1.24.2 (755e2b07e 2021-05-12)
[Continuous Integration/build   ]   | info: This is the version for the rustup toolchain manager, not the rustc compiler.
[Continuous Integration/build   ]   | info: The currently active `rustc` version is `rustc 1.54.0-nightly (c79419af0 2021-06-04)`
[Continuous Integration/build   ]   | Installed rustup 1.24.2 support profiles
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/rustup set profile minimal
[Continuous Integration/build   ]   | info: profile set to 'minimal'
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/rustup toolchain install nightly
[Continuous Integration/build   ]   | info: syncing channel updates for 'nightly-x86_64-unknown-linux-gnu'
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   |   nightly-x86_64-unknown-linux-gnu unchanged - rustc 1.54.0-nightly (c79419af0 2021-06-04)
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | info: checking for self-updates
[Continuous Integration/build   ]   โ“  ::group::Gathering installed versions
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/rustc -V
[Continuous Integration/build   ]   | rustc 1.54.0-nightly (c79419af0 2021-06-04)
[Continuous Integration/build   ]   โš™  ::set-output:: rustc=1.54.0-nightly (c79419af0 2021-06-04)
[Continuous Integration/build   ]   โš™  ::set-output:: rustc_hash=c79419af0
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/cargo -V
[Continuous Integration/build   ]   | cargo 1.54.0-nightly (0cecbd673 2021-06-01)
[Continuous Integration/build   ]   โš™  ::set-output:: cargo=1.54.0-nightly (0cecbd673 2021-06-01)
[Continuous Integration/build   ]   | [command]/home/fanninpm/Documents/GitHub/home/.cargo/bin/rustup -V
[Continuous Integration/build   ]   | rustup 1.24.2 (755e2b07e 2021-05-12)
[Continuous Integration/build   ]   | info: This is the version for the rustup toolchain manager, not the rustc compiler.
[Continuous Integration/build   ]   | info: The currently active `rustc` version is `rustc 1.54.0-nightly (c79419af0 2021-06-04)`
[Continuous Integration/build   ]   โš™  ::set-output:: rustup=1.24.2 (755e2b07e 2021-05-12)
[Continuous Integration/build   ]   โ“  ::endgroup::
[Continuous Integration/build   ]   โœ…  Success - Configure rustup
[Continuous Integration/build   ] โญ  Run cargo run glacier
[Continuous Integration/build   ]   |     Updating crates.io index
[Continuous Integration/build   ]   |  Downloading crates ...
[Continuous Integration/build   ]   |   Downloaded alphanumeric-sort v1.4.3
[Continuous Integration/build   ]   |   Downloaded crossbeam-deque v0.8.0
[Continuous Integration/build   ]   |   Downloaded getrandom v0.2.3
[Continuous Integration/build   ]   |   Downloaded scopeguard v1.1.0
[Continuous Integration/build   ]   |   Downloaded anyhow v1.0.40
[Continuous Integration/build   ]   |   Downloaded crossbeam-channel v0.5.1
[Continuous Integration/build   ]   |   Downloaded cfg-if v1.0.0
[Continuous Integration/build   ]   |   Downloaded autocfg v1.0.1
[Continuous Integration/build   ]   |   Downloaded crossbeam-epoch v0.9.4
[Continuous Integration/build   ]   |   Downloaded crossbeam-utils v0.8.4
[Continuous Integration/build   ]   |   Downloaded lazy_static v1.4.0
[Continuous Integration/build   ]   |   Downloaded either v1.6.1
[Continuous Integration/build   ]   |   Downloaded tempfile v3.2.0
[Continuous Integration/build   ]   |   Downloaded memoffset v0.6.3
[Continuous Integration/build   ]   |   Downloaded num_cpus v1.13.0
[Continuous Integration/build   ]   |   Downloaded remove_dir_all v0.5.3
[Continuous Integration/build   ]   |   Downloaded rand_core v0.6.2
[Continuous Integration/build   ]   |   Downloaded rand_chacha v0.3.0
[Continuous Integration/build   ]   |   Downloaded rand v0.8.3
[Continuous Integration/build   ]   |   Downloaded rayon-core v1.9.1
[Continuous Integration/build   ]   |   Downloaded rayon v1.5.1
[Continuous Integration/build   ]   |   Downloaded ppv-lite86 v0.2.10
[Continuous Integration/build   ]   |   Downloaded libc v0.2.94
[Continuous Integration/build   ]   |    Compiling autocfg v1.0.1
[Continuous Integration/build   ]   |    Compiling cfg-if v1.0.0
[Continuous Integration/build   ]   |    Compiling libc v0.2.94
[Continuous Integration/build   ]   |    Compiling lazy_static v1.4.0
[Continuous Integration/build   ]   |    Compiling rayon-core v1.9.1
[Continuous Integration/build   ]   |    Compiling scopeguard v1.1.0
[Continuous Integration/build   ]   | error: linker `cc` not found
[Continuous Integration/build   ]   |   |
[Continuous Integration/build   ]   |   = note: No such file or directory (os error 2)
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | error: aborting due to previous error
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | error: could not compile `rayon-core`
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | To learn more, run the command again with --verbose.
[Continuous Integration/build   ]   | warning: build failed, waiting for other jobs to finish...
[Continuous Integration/build   ]   | error: linker `cc` not found
[Continuous Integration/build   ]   |   |
[Continuous Integration/build   ]   |   = note: No such file or directory (os error 2)
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | error: aborting due to previous error
[Continuous Integration/build   ]   | 
[Continuous Integration/build   ]   | error: build failed
[Continuous Integration/build   ]   โŒ  Failure - cargo run glacier
Error: exit with `FAILURE`: 101

`lchown /etc: no such file or directory`

I'm trying to install act on an Ubuntu-20.04 system but I get this when I try to pull the act docker image:

docker pull catthehacker/ubuntu:act-20.04
act-20.04: Pulling from catthehacker/ubuntu
7b1a6ab2e44d: Already exists
e5d2365e1e08: Extracting [==================================================>]  7.775MB/7.775MB
577c425bc292: Download complete
81fcda6c22ed: Download complete
91046370e281: Download complete
bada956823bf: Download complete
9a092865042a: Download complete
failed to register layer: ApplyLayer exit status 1 stdout:  stderr: lchown /etc: no such file or directory

Any image I pull from this repo ends with failed to register layer: ApplyLayer exit status 1 stdout: stderr: lchown /etc: no such file or directory.
I don't git this on a full ubuntu image.
I already did some googling and I couldn't really find anything interesting.

I did find this article however: https://stackoverflow.com/a/66017633/2319865.
It appears to be a docker issue with NFS, and it might be happening inside of the image on startup.

For context, I am running this inside of WSL2 on Windows 10 if it helps.

build failing and unable to pull from docker hub.

It appears the build is failing and so is docker hub.

[Deploy to Staging with Matrix/determine-affected-apps] ๐Ÿš€  Start image=catthehacker/ubuntu:act-latest
[Deploy to Staging with Matrix/determine-affected-apps]   ๐Ÿณ  docker pull image=catthehacker/ubuntu:act-latest platform= username= forcePull=true
^C[Deploy to Staging with Matrix/determine-affected-apps] failed to remove container: Delete "http://%2Fvar%2Frun%2Fdocker.sock/v1.41/containers/c6f1b4dde24a4317f8ce42157e62e528811428e51a88789f0674878ce2c09594?force=1&v=1": context canceled
Error: context canceled

Mount docker compose plugin into child container

Background

I'm running integration tests within a docker container that is hosted by another container that is using the ghcr.io/catthehacker/ubuntu:act-latest image. In addition, this is all running within a GitHub actions job locally via act.

Goal

Within the child integration test container, I want to run docker compose commands that build necessary dependency containers for the tests. I'm able to mount the docker binary from the host /ubuntu:act-latest container although the docker compose plugin is not included which results in docker compose commands failing. I'm not sure if I'm missing any other volume that are needed in order for the docker compose plugin to work.

Here are relevant snippets from files:

tests.yml github action job:

integration:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Tests
      id: act_pytest_integration
      shell: bash
      run: |
        export DOCKERPATH=$(which docker)
        docker compose run --rm integration pytest tests/integration/tasks

docker-compose.yml withintegration service called from github action job:

integration:
    network_mode: host
    stdin_open: true
    tty: true
    image: terraform-aws-infrastructure-live/integration
    build: ./tests/integration
    volumes:
    - $PWD:/src
    - $DOCKERPATH:/usr/bin/docker:ro
    - /usr/libexec/docker/cli-plugins:/usr/libexec/docker/cli-plugins
    - /var/run/docker.sock:/var/run/docker.sock
    entrypoint: [/bin/bash, entrypoint.sh]
    profiles: [integration]

Thank you in advance

js images for arm64?

The act-20.04 and runner-20.04 support multiple architectures, but the more targeted images are only for amd64.

I'm specifically trying to use js-20.04 on an M1 Mac, so it wants arm64.

My workaround is to use act-20.04 as a base and then install my javascript tools as part of my own Dockerfile, but it would be nicer to have the perks of a js-specific image with all that stuff preinstalled, as it is for amd64 machines.

Make images smaller

Currently act-* images are quite big due to docker taking at least (!) 100MB

REPOSITORY TAG IMAGE ID CREATED SIZE
catthehacker/ubuntu act-20.04 2663e80e57e7 3 hours ago 530MB
catthehacker/ubuntu act-16.04 3736b648c03f 3 hours ago 546MB
catthehacker/ubuntu act-latest 79bd1b439bb1 3 hours ago 450MB
catthehacker/ubuntu act-18.04 46c75d6aa3a1 3 hours ago 450MB

According to dive, there is a bit of space that can be shaven off

Image name Potential wasted space Image efficiency score
catthehacker/ubuntu:act-20.04 3.3 MB 99 %
catthehacker/ubuntu:act-16.04 48 MB 91 %
catthehacker/ubuntu:act-latest 2.8 MB 99 %
catthehacker/ubuntu:act-18.04 2.8 MB 99 %

TODO:

  • Find things that can be deleted
  • Explore alternative ways to install dependencies (e.g.: build docker from source but linked dynamically)

rust-latest install outdated toolchains version

Hi,

When using catthehacker/ubuntu:rust-latest the installed Rust version is

1.53.0 (2021-04-27)

At the time of writing, the current stable version is 1.65.0. This is even more problematic since version 1.53.0 does not support Rust 2021 edition, which is the stable edition now.

So basically it forces adding a step to the GA to update it:

      - run: rustup update

Which is not needed on ubuntu GitHub runner.

setup-python action fails as it cannot find the tool cache on ubuntu-22.04 image

While using the ubuntu-22.04 image on a forgejo runner I was unable to use the setup-python action as it could not find the tools cache (actually it reports it cannot find the right python version in the cache, but is not finding the cache in the first place that is the problem).

Reading setup-pythons documentation on hosted tool cache it states it looks for the tool cache in RUNNER_TOOL_CACHE. However the ubuntu-22.04 image does not have an environment variable RUNNER_TOOL_CACHE, but it does have a RUN_TOOL_CACHE.

When I inject a environment variable RUNNER_TOOL_CACHE with the same value as RUN_TOOL_CACHE the setup-python action works as expected. Is the name RUN_TOOL_CACHE wrong and should it be RUNNER_TOOL_CACHE instead?

Upgrade Node to v16 from v14 to match GH runners

Ubuntu 20.04/latest should have Node 16 but I am seeing v14 instead

https://github.blog/changelog/2021-12-10-github-actions-github-hosted-runners-now-run-node-js-16-by-default/

% docker run ghcr.io/catthehacker/ubuntu:act-latest ls /opt/hostedtoolcache/node
14.19.0
% docker run ghcr.io/catthehacker/ubuntu:js-latest ls /opt/hostedtoolcache/node
10.24.1
12.22.10
14.19.0
% docker run --entrypoint /usr/local/bin/node ghcr.io/catthehacker/ubuntu:full-latest --version
v14.17.6

Extremely slow docker pull

I'm trying to set up ghcr.io/catthehacker/ubuntu:full-latest docker image to run act on and unable to.

I'm aware it's 14GB file but I'm getting very low download speeds for the image. I tested my network and that's not the issue, I have great connection speed.

I tried

docker pull ghcr.io/catthehacker/ubuntu:full-latest

as well as

act -P ubuntu:full-latest=ghcr.io/catthehacker/ubuntu:full-latest

It took 1 hour or so to download 1GB.

I googled the issue and couldn't find anything useful

Add node to PATH in an actions/runner compatible way

Hi,

I'm trying to fix PATH handling for docker actions in nektos/act.

You have added the node program not via the ENV docker directive to $PATH, this will break with nektos/act#1503.

I know you cannot set PATH env this way from the scripts..., but the current act implementation doesn't match actions/runner
container handling and causes bugs in other docker actions.

Yarn missing from ghcr.io/catthehacker/ubuntu:js-x

To reproduce:

ยป docker run -it ghcr.io/catthehacker/ubuntu:js-latest yarn --version                                                                                                                                                                                                         130 โ†ต
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "yarn": executable file not found in $PATH: unknown.

Issue first noticed while trying to use with act.

Here is my logs from doing so:

act
[Build/test    ] ๐Ÿš€  Start image=ghcr.io/catthehacker/ubuntu:js-latest
[Build/test    ]   ๐Ÿณ  docker pull image=ghcr.io/catthehacker/ubuntu:js-latest platform= username= forcePull=false
[Build/test    ]   ๐Ÿณ  docker create image=ghcr.io/catthehacker/ubuntu:js-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Build/test    ]   ๐Ÿณ  docker run image=ghcr.io/catthehacker/ubuntu:js-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[Build/test    ]   ๐Ÿณ  docker exec cmd=[mkdir -m 0777 -p /var/run/act] user=root workdir=
[Build/test    ]   ๐Ÿณ  docker cp src=project/. dst=project
[Build/test    ]   ๐Ÿณ  docker exec cmd=[mkdir -p project] user= workdir=
[Build/test    ] โญ  Run Setup Node
INFO[0070]   โ˜  git clone 'https://github.com/actions/setup-node' # ref=v2.5.0
[Build/test    ]   ๐Ÿณ  docker cp src=/Users/chasenbettinger/.cache/act/[email protected]/ dst=/var/run/act/actions/[email protected]/
[Build/test    ]   ๐Ÿณ  docker exec cmd=[mkdir -p /var/run/act/actions/[email protected]/] user= workdir=
[Build/test    ]   ๐Ÿณ  docker exec cmd=[node /var/run/act/actions/[email protected]/dist/setup/index.js] user= workdir=
[Build/test    ]   ๐Ÿ’ฌ  ::debug::isExplicit:
[Build/test    ]   ๐Ÿ’ฌ  ::debug::explicit? false
[Build/test    ]   ๐Ÿ’ฌ  ::debug::isExplicit: 10.24.1
[Build/test    ]   ๐Ÿ’ฌ  ::debug::explicit? true
[Build/test    ]   ๐Ÿ’ฌ  ::debug::isExplicit: 12.22.7
[Build/test    ]   ๐Ÿ’ฌ  ::debug::explicit? true
[Build/test    ]   ๐Ÿ’ฌ  ::debug::isExplicit: 14.18.2
[Build/test    ]   ๐Ÿ’ฌ  ::debug::explicit? true
[Build/test    ]   ๐Ÿ’ฌ  ::debug::evaluating 0 versions
[Build/test    ]   ๐Ÿ’ฌ  ::debug::match not found
| Attempting to download 14...
[Build/test    ]   ๐Ÿ’ฌ  ::debug::No manifest cached
[Build/test    ]   ๐Ÿ’ฌ  ::debug::Getting manifest from actions/node-versions@main
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.13.1 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.13.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.12.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.11.1 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.11.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.10.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.9.1 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.9.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.8.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.7.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.6.2 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.6.1 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.6.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.5.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.4.2 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.4.1 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.4.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.3.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.2.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.1.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 16.0.0 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::check 14.18.2 satisfies 14
[Build/test    ]   ๐Ÿ’ฌ  ::debug::x64===x64 && darwin===linux
[Build/test    ]   ๐Ÿ’ฌ  ::debug::x64===x64 && linux===linux
[Build/test    ]   ๐Ÿ’ฌ  ::debug::matched 14.18.2
| Acquiring 14.18.2 - x64 from https://github.com/actions/node-versions/releases/download/14.18.2-1525067507/node-14.18.2-linux-x64.tar.gz
[Build/test    ]   ๐Ÿ’ฌ  ::debug::Downloading https://github.com/actions/node-versions/releases/download/14.18.2-1525067507/node-14.18.2-linux-x64.tar.gz
[Build/test    ]   ๐Ÿ’ฌ  ::debug::Destination /tmp/c556b65a-3ccf-4dc9-802f-80e306bf7911
[Build/test    ]   ๐Ÿ’ฌ  ::debug::download complete
| Extracting ...
[Build/test    ]   ๐Ÿ’ฌ  ::debug::Checking tar --version
[Build/test    ]   ๐Ÿ’ฌ  ::debug::tar (GNU tar) 1.30%0ACopyright (C) 2017 Free Software Foundation, Inc.%0ALicense GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.%0AThis is free software: you are free to change and redistribute it.%0AThere is NO WARRANTY, to the extent permitted by law.%0A%0AWritten by John Gilmore and Jay Fenlason.
| [command]/usr/bin/tar xz --strip 1 --warning=no-unknown-keyword -C /tmp/28f33487-b49c-4ec2-bd2e-9f3391a7fb50 -f /tmp/c556b65a-3ccf-4dc9-802f-80e306bf7911
| Adding to the cache ...
[Build/test    ]   ๐Ÿ’ฌ  ::debug::Caching tool node 14.18.2 x64
[Build/test    ]   ๐Ÿ’ฌ  ::debug::source dir: /tmp/28f33487-b49c-4ec2-bd2e-9f3391a7fb50
[Build/test    ]   ๐Ÿ’ฌ  ::debug::destination /opt/hostedtoolcache/node/14.18.2/x64
[Build/test    ]   ๐Ÿ’ฌ  ::debug::finished caching tool
| Done
[Build/test    ]   โ—  ::error::Unable to locate executable file: yarn. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.
[Build/test    ]   โŒ  Failure - Setup Node

Getting "unauthorized: incorrect username or password " I'm not sure what I'm doing wrong.

I'm logged into Docker Desktop with my account and was able to run the Docker Desktop test run.
Trying to run fabrication.yml file because I tracking down a bug.

Here is my log:

PS C:\Users\rabbit\Documents\usb2adb> act -l
Stage Job ID Job name Workflow name Workflow file Events
0 generate Generate fabrication files Generate fabrication files fabrication.yml workflow_dispatch,push
PS C:\Users\rabbit\Documents\usb2adb> act -j generate
โ†[34m[Generate fabrication files/Generate fabrication files] โ†[0m๐Ÿš€ Start image=catthehacker/ubuntu:act-20.04
โ†[34m[Generate fabrication files/Generate fabrication files] โ†[0m ๐Ÿณ docker pull image=catthehacker/ubuntu:act-20.04 platform= username= forcePull=false
โ†[34m[Generate fabrication files/Generate fabrication files] โ†[0m๐Ÿ Job succeeded
Error: Error response from daemon: Head "https://registry-1.docker.io/v2/catthehacker/ubuntu/manifests/act-20.04": unauthorized: incorrect username or password
PS C:\Users\rabbit\Documents\usb2adb>

Allow installation of graphviz

Using the following job, I run into an error when the container tries to install graphviz:

  doxygen:
    name: doxygen
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: recursive
      - name: Install Doxygen
        run: sudo apt-get install -y doxygen graphviz
act output
[CI/doxygen] ๐Ÿš€  Start image=catthehacker/ubuntu:act-20.04
[CI/doxygen]   ๐Ÿณ  docker run image=catthehacker/ubuntu:act-20.04 platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[CI/doxygen]   ๐Ÿณ  docker exec cmd=[mkdir -m 0777 -p /var/run/act] user=root
[CI/doxygen]   ๐Ÿณ  docker cp src=snip/. dst=snip
[CI/doxygen]   ๐Ÿณ  docker exec cmd=[mkdir -p snip] user=
[CI/doxygen] โญ  Run actions/checkout@v2
[CI/doxygen]   โœ…  Success - actions/checkout@v2
[CI/doxygen] โญ  Run Install Doxygen
[CI/doxygen]   ๐Ÿณ  docker exec cmd=[bash --noprofile --norc -e -o pipefail snip/workflow/1] user=
Reading package lists... Done
Building dependency tree
Reading state information... Done
| Package graphviz is not available, but is referred to by another package.
| This may mean that the package is missing, has been obsoleted, or
| is only available from another source
|
| E: Unable to locate package doxygen
| E: Package 'graphviz' has no installation candidate
[CI/doxygen]   โŒ  Failure - Install Doxygen
Error: exit with `FAILURE`: 100

I tried pulling the full image and running with it, but it ran into other (quite odd) issues (e.g., trying to setup mongo-db?).

Docker Hub Readme link typo

Thanks for the amazing work on this!

The Docker Hub Readme warning (that says the readme is not auto-updated anymore) contains a link to this repository for an up-to-date readme. Unfortunately, the link has a typo.

Original text:

Please see https://github.com/catthehacekr/docker_images for up-to-date readme file.

Note the switched characters in the GitHub organization.

Proposed fix:

Please see https://github.com/catthehacker/docker_images for up-to-date readme file.

To lower the possibility of confusion, I think, it's worth fixing it there.

Add $GOBIN to the $PATH for go-* images

Please add the $GOBIN or go env GOBIN or where ever go install puts installed binaries in this image to the $PATH ๐Ÿ™

This will makes running actions and installing additional Go binaires much easier ๐Ÿ‘Œ

Thank you! ๐Ÿ™‡โ€โ™‚๏ธ

permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:

Hey, I get this error when using ubuntu:full-22.04 and similar images along with docker.

 docker run -v /var/run/docker.sock:/var/run/docker.sock --rm -it catthehacker/ubuntu:full-22.04 /bin/sh
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
$ docker ps
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
$ 

While regular ubuntu and other containers works just fine.
Does anyone have any idea why?
Thanks!

docker-compose version hiccup

I am currently using your ubuntu-full-latest image for local testing a GitHub workflow, act is great and your images are immensely useful, thanks for that, foremost!

I've been running in an issue with a version mismatch from docker-compose in your image, and probably will also affect the upstream.
Regarding actions/runner-images#4203 and changed files, there should be โ€œbothโ€ version available.

If I understand it correctly, docker-compose v1 should be in /usr/local/bin, which I could confirm.
docker compose however, is not a command in docker if I try to call it, but moby-compose is a package found in apt show moby-compose on the container, which would be expected looking at the source files.

Can you please point me to my error, how to use docker-compose v2 in your, respectively, the upstream image?

Add Java Build Tools

I'm currently adopting GitHub Actions to some Java Repositories and would like to use act for locally testing the workflows.
However, the provided medium images do not cover the Java build tools - especially Maven in my case.

Is it possible to add another image which contains the three popular build tools Ant/Maven/Gradle? See Java tools by the actual runner: https://github.com/actions/virtual-environments/blob/main/images/linux/scripts/installers/java-tools.sh

Additional Context:

Normally it wouldn't be a problem since the Maven wrapper script can be used. However, windows and docker with WSL backend does not allow this using act, since act will copy the project files without the executable flag on the wrapper (well ofc, it's windows - where should the flag be?). As a workaround you could use -b to bind the project folder as a volume, but doing so, the CRLF line ending from windows will cause issues in the wrapper script.

Trouble mounting `binfmt_misc` for Docker builds

Hello,

I'm currently using Gitea with the Gitea act runner.
I have the following labels configured to run jobs:

  labels:
    - "ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest"
    - "ubuntu-22.04:docker://ghcr.io/catthehacker/ubuntu:act-22.04"
    - "ubuntu-20.04:docker://ghcr.io/catthehacker/ubuntu:act-20.04"

When trying to use the docker/setup-qemu-action@v3 action to prepare the environment for cross-platform builds, I get the following error:

[command]/usr/bin/docker run --rm --privileged tonistiigi/binfmt:latest --install all
error: operation not permitted
cannot mount binfmt_misc filesystem at /proc/sys/fs/binfmt_misc

main.run
	/src/cmd/binfmt/main.go:183
main.main
	/src/cmd/binfmt/main.go:170
runtime.main
	/usr/local/go/src/runtime/proc.go:250
runtime.goexit
	/usr/local/go/src/runtime/asm_amd64.s:1571

Anybody else have this issue?
Any ideas how to get the mount working?

I'm thinking it maybe has something to do with the Docker daemon running outside of this container's filesystem and not having permissions to write to the mount path..?

Here is a sample of my workflow:

name: release-tag

on:
  push:
    tags: ["*"]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

no docker on full image?

I just pulled the full image and I'm getting a docker daemon running error. Is docker not in the full image?

running java-tools.sh fail on apt-get update

Hi,
I would like to create a custom image based on catthehacker/ubuntu:act-latest with java installed.

Running java-tools.sh raise this error
E: The repository 'https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release' does not have a Release file.

Reproduce steps:

docker pull catthehacker/ubuntu:act-latest
docker run --rm -it catthehacker/ubuntu:act-latest
/imagegeneration/installers/java-tools.sh

Details

output of the command with the error ```shell root@fac95a3cc82b:/tmp# /imagegeneration/installers/java-tools.sh + . /etc/environment ++ PATH=/opt/hostedtoolcache/node/16.19.1/x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin ++ IMAGE_OS=ubuntu22 ++ ImageOS=ubuntu22 ++ LSB_RELEASE=22.04 ++ AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache ++ RUN_TOOL_CACHE=/opt/hostedtoolcache ++ DEPLOYMENT_BASEPATH=/opt/runner ++ USER=root ++ RUNNER_USER=root ++ LSB_OS_VERSION=2204 + . /imagegeneration/installers/helpers/os.sh + . /imagegeneration/installers/helpers/install.sh + . /imagegeneration/installers/helpers/etc-environment.sh + enableRepositories + wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public + apt-key add - Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). OK + add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ Repository: 'deb https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ jammy main' Description: Archive for codename: jammy components: main More info: https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/ Adding repository. Adding deb entry to /etc/apt/sources.list.d/archive_uri-https_adoptopenjdk_jfrog_io_adoptopenjdk_deb_-jammy.list Adding disabled deb-src entry to /etc/apt/sources.list.d/archive_uri-https_adoptopenjdk_jfrog_io_adoptopenjdk_deb_-jammy.list Get:1 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB] Get:2 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease [3065 B] Get:3 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease [23.8 kB] Get:4 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB] Get:5 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [107 kB] Get:6 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB] Get:7 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main amd64 Packages [52.4 kB] Get:8 https://packages.microsoft.com/ubuntu/22.04/prod jammy/main all Packages [713 B] Get:9 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB] Get:10 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB] Ign:11 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy InRelease Get:12 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 Packages [2956 B] Get:13 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB] Err:14 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release 404 [IP: 34.74.126.177 443] Get:15 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB] Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1125 kB] Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [10.9 kB] Get:18 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1189 kB] Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [880 kB] Get:21 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [49.0 kB] Get:22 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [22.4 kB] Get:23 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [5557 B] Get:24 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [883 kB] Get:25 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [855 kB] Get:20 https://packagecloud.io/github/git-lfs/ubuntu jammy InRelease [24.4 kB] Get:26 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [823 kB] Get:27 https://packagecloud.io/github/git-lfs/ubuntu jammy/main amd64 Packages [1274 B] Reading package lists... Done E: The repository 'https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. + wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public + apt-key add - Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)). OK + add-apt-repository --yes https://packages.adoptium.net/artifactory/deb/ Repository: 'deb https://packages.adoptium.net/artifactory/deb/ jammy main' Description: Archive for codename: jammy components: main More info: https://packages.adoptium.net/artifactory/deb/ Adding repository. Adding deb entry to /etc/apt/sources.list.d/archive_uri-https_packages_adoptium_net_artifactory_deb_-jammy.list Adding disabled deb-src entry to /etc/apt/sources.list.d/archive_uri-https_packages_adoptium_net_artifactory_deb_-jammy.list Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:3 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease Hit:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease Hit:5 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease Hit:6 http://security.ubuntu.com/ubuntu jammy-security InRelease Ign:7 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy InRelease Err:8 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release 404 [IP: 34.74.126.177 443] Get:10 https://packages.adoptium.net/artifactory/deb jammy InRelease [6632 B] Hit:9 https://packagecloud.io/github/git-lfs/ubuntu jammy InRelease Get:11 https://packages.adoptium.net/artifactory/deb jammy/main amd64 Packages [3707 B] Reading package lists... Done E: The repository 'https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. W: https://packages.adoptium.net/artifactory/deb/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. + isUbuntu18 + . /etc/os-release ++ PRETTY_NAME='Ubuntu 22.04.1 LTS' ++ NAME=Ubuntu ++ VERSION_ID=22.04 ++ VERSION='22.04.1 LTS (Jammy Jellyfish)' ++ VERSION_CODENAME=jammy ++ ID=ubuntu ++ ID_LIKE=debian ++ HOME_URL=https://www.ubuntu.com/ ++ SUPPORT_URL=https://help.ubuntu.com/ ++ BUG_REPORT_URL=https://bugs.launchpad.net/ubuntu/ ++ PRIVACY_POLICY_URL=https://www.ubuntu.com/legal/terms-and-policies/privacy-policy ++ UBUNTU_CODENAME=jammy + [[ 22.04 =~ ^18\.(.*)$ ]] + apt-get update Hit:1 http://security.ubuntu.com/ubuntu jammy-security InRelease Hit:2 https://packages.microsoft.com/ubuntu/22.04/prod jammy InRelease Hit:3 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease Hit:4 http://archive.ubuntu.com/ubuntu jammy InRelease Hit:5 http://archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:6 http://archive.ubuntu.com/ubuntu jammy-backports InRelease Ign:7 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy InRelease Err:8 https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release 404 [IP: 34.74.126.177 443] Hit:10 https://packages.adoptium.net/artifactory/deb jammy InRelease Hit:9 https://packagecloud.io/github/git-lfs/ubuntu jammy InRelease Reading package lists... Done E: The repository 'https://adoptopenjdk.jfrog.io/adoptopenjdk/deb jammy Release' does not have a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. W: https://packages.adoptium.net/artifactory/deb/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. ```

Node missing from latest Ubuntu act images

Node seems to be missing from the Ubuntu act image as of ubuntu:act-22.04-20230808.

We've started seeing the following error:

"node": executable file not found in $PATH: unknown

failed to register layer: open /var/lib/dpkg/info/gcc-12-base:amd64.list: invalid argument

$ docker pull ghcr.io/catthehacker/ubuntu:act-latest
act-latest: Pulling from catthehacker/ubuntu
bc049b7fc634: Extracting [==================================================>]  31.59MB/31.59MB
275ca953c1b8: Download complete 
e989fde0efbd: Download complete 
525b56a3bb8c: Download complete 
3bf0ff2153a6: Download complete 
4ca545ee6d5d: Download complete 
failed to register layer: open /var/lib/dpkg/info/gcc-12-base:amd64.list: invalid argument

Add Android-specific images

Can you please create a set of Android-specific images (much like the JS and Rust ones), since by default Github Actions contain the Android SDK tools?

seems like systemd is missing? or something something something devbox installer doesn't work

with the following workflow:

on:
  push:
    branches:
      - master

permissions:
  contents: write
  pull-requests: write
  packages: write
  
name: ReleaseManagement


jobs:
  Release:
    runs-on: ubuntu-22.04

    
    outputs:
      release_created: ${{ steps.release.outputs.release_created }}
      releases_created: ${{ steps.release.outputs.releases_created }}
      tag_name: ${{ steps.release.outputs.tag_name }} # e.g. v1.0.0
      version: ${{ steps.release.outputs.version }} # e.g. 1.0.0
      json: ${{ toJSON(steps.release.outputs) }}
    steps:
      - uses: google-github-actions/release-please-action@v3
        if: ${{!github.event.act}}
        id: release-please
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          command: manifest
          release-type: go
          extra-files: |
            meta/package.go
      - id: release
        name: act interop
        run: |
          if [ "${{!github.event.act}}" == "false" ]; then
            echo "release_created=true" >> $GITHUB_OUTPUT
            echo "releases_created=true" >> $GITHUB_OUTPUT
            echo "tag_name=snapshot" >> $GITHUB_OUTPUT
            echo "version=snaphot" >> $GITHUB_OUTPUT
          else
            echo "release_created=${{ steps.release-please.outputs.release_created }}" >> $GITHUB_OUTPUT
            echo "releases_created=${{ steps.release-please.outputs.releases_created }}" >> $GITHUB_OUTPUT
            echo "tag_name=${{ steps.release-please.outputs.tag_name }}" >> $GITHUB_OUTPUT
            echo "version=${{ steps.release-please.outputs.version }}" >> $GITHUB_OUTPUT
          fi

  Build:
    if: needs.Release.outputs.releases_created

    runs-on: ubuntu-22.04
    needs: [Release]

    env:
      REGISTRY: ghcr.io
      IMAGE_NAME: ${{ github.repository }}

    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
          fetch-tags: true
      
      # - name: Set up QEMU
      #   uses: docker/setup-qemu-action@v2
      # - uses: docker/setup-buildx-action@v2
      # - name: Docker Login
      #   uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
      #   with:
      #     registry: ${{ env.REGISTRY }}
      #     username: ${{ github.actor }}
      #     password: ${{ secrets.GITHUB_TOKEN }}

      - name: setup jetpack devbox
        uses: jetpack-io/[email protected]

      - name: Run GoReleaser
        env:
          registry: ${{ env.REGISTRY }}
          IMAGE_NAME: ${{ env.IMAGE_NAME }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          if [ "${{ !github.event.act }}" == "true" ]; then
            devbox run -- gorelease release --clean
          else
            devbox run -- gorelease build --clean --snapshot
          fi

with this .actevent.json

{
  "act": true
}

and this command

  act push \
    --platform ubuntu-22.04=catthehacker/ubuntu:full-latest \
    --eventpath .actevent.json \
    --workflows .github/workflows/release.yml \
    --job Build

i get this output:

act push --platform ubuntu-22.04=catthehacker/ubuntu:full-latest --eventpath .actevent.json --workflows .github/workflows/release.yml --job Build
[ReleaseManagement/Release] ๐Ÿš€  Start image=catthehacker/ubuntu:full-latest
INFO[0000] Parallel tasks (0) below minimum, setting to 1 
[ReleaseManagement/Release]   ๐Ÿณ  docker pull image=catthehacker/ubuntu:full-latest platform= username= forcePull=true
INFO[0002] Parallel tasks (0) below minimum, setting to 1 
[ReleaseManagement/Release]   ๐Ÿณ  docker create image=catthehacker/ubuntu:full-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[ReleaseManagement/Release]   ๐Ÿณ  docker run image=catthehacker/ubuntu:full-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[ReleaseManagement/Release]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /mnt/Store/Projects/Mine/Github/bank-downloaders] user=0 workdir=
[ReleaseManagement/Release]   โ˜  git clone 'https://github.com/google-github-actions/release-please-action' # ref=v3
[ReleaseManagement/Release] โญ Run Main act interop
[ReleaseManagement/Release]   ๐Ÿณ  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/release] user= workdir=
[ReleaseManagement/Release]   โœ…  Success - Main act interop
[ReleaseManagement/Release]   โš™  ::set-output:: version=snaphot
[ReleaseManagement/Release]   โš™  ::set-output:: release_created=true
[ReleaseManagement/Release]   โš™  ::set-output:: releases_created=true
[ReleaseManagement/Release]   โš™  ::set-output:: tag_name=snapshot
[ReleaseManagement/Release] Cleaning up container for job Release
[ReleaseManagement/Release] ๐Ÿ  Job succeeded
[ReleaseManagement/Build  ] ๐Ÿš€  Start image=catthehacker/ubuntu:full-latest
INFO[0004] Parallel tasks (0) below minimum, setting to 1 
[ReleaseManagement/Build  ]   ๐Ÿณ  docker pull image=catthehacker/ubuntu:full-latest platform= username= forcePull=true
INFO[0006] Parallel tasks (0) below minimum, setting to 1 
[ReleaseManagement/Build  ]   ๐Ÿณ  docker create image=catthehacker/ubuntu:full-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[ReleaseManagement/Build  ]   ๐Ÿณ  docker run image=catthehacker/ubuntu:full-latest platform= entrypoint=["tail" "-f" "/dev/null"] cmd=[] network="host"
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /mnt/Store/Projects/Mine/Github/bank-downloaders] user=0 workdir=
[ReleaseManagement/Build  ]   โ˜  git clone 'https://github.com/jetpack-io/devbox-install-action' # ref=v0.7.0
[ReleaseManagement/Build  ] โญ Run Pre setup jetpack devbox
[ReleaseManagement/Build  ]   โ˜  git clone 'https://github.com/actions/cache' # ref=v3
[ReleaseManagement/Build  ]   โ˜  git clone 'https://github.com/actions/cache' # ref=v3
[ReleaseManagement/Build  ]   โ˜  git clone 'https://github.com/DeterminateSystems/nix-installer-action' # ref=v4
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Pre Install nix
[ReleaseManagement/Build  ]   โœ…  Success - Pre Install nix
[ReleaseManagement/Build  ]   โ˜  git clone 'https://github.com/actions/cache' # ref=v3
[ReleaseManagement/Build  ]   โ˜  git clone 'https://github.com/actions/cache' # ref=v3
[ReleaseManagement/Build  ]   โœ…  Success - Pre setup jetpack devbox
[ReleaseManagement/Build  ] โญ Run Main actions/checkout@v3
[ReleaseManagement/Build  ]   ๐Ÿณ  docker cp src=/mnt/Store/Projects/Mine/Github/bank-downloaders/. dst=/mnt/Store/Projects/Mine/Github/bank-downloaders
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /mnt/Store/Projects/Mine/Github/bank-downloaders] user=0 workdir=
[ReleaseManagement/Build  ]   โœ…  Success - Main actions/checkout@v3
[ReleaseManagement/Build  ] โญ Run Main setup jetpack devbox
[ReleaseManagement/Build  ]   ๐Ÿณ  docker cp src=/home/zenobius/.cache/act/[email protected]/ dst=/var/run/act/actions/[email protected]/
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /var/run/act/actions/[email protected]/] user=0 workdir=
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Main Get devbox version
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-0.sh] user= workdir=
| Found devbox latest version 0.8.2.
[ReleaseManagement/Build  ]   โœ…  Success - Main Get devbox version
[ReleaseManagement/Build  ]   โš™  ::set-env:: latest_version=0.8.2
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Main Mount devbox cli cache
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ]   ๐Ÿณ  docker cp src=/home/zenobius/.cache/act/actions-cache-restore@v3/ dst=/var/run/act/actions/actions-cache-restore@v3/
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /var/run/act/actions/actions-cache-restore@v3/] user=0 workdir=
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[node /var/run/act/actions/actions-cache-restore@v3/dist/restore-only/index.js] user= workdir=
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Resolved Keys:
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::["Linux-devbox-cli-0.8.2"]
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Checking zstd --quiet --version
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::1.5.5
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::zstd version: 1.5.5
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Resource Url: http://192.168.86.43:38721/_apis/artifactcache/cache?keys=Linux-devbox-cli-0.8.2&version=10c3673137184e8fc98ee7019556b49e59a4412bda7618d1ecdeb71d8913cc9a
[ReleaseManagement/Build  ]   โš™  ***
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Cache Result:
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::{"archiveLocation":"***","cacheKey":"linux-devbox-cli-0.8.2","result":"hit"}
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Archive Path: /tmp/397c456e-f8f8-4241-aca7-c328ecdbbde2/cache.tzst
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Use Azure SDK: false
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Download concurrency: 8
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Request timeout (ms): 30000
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Cache segment download timeout mins env var: undefined
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Segment download timeout (ms): 600000
[ReleaseManagement/Build  ]   ๐Ÿ’ฌ  ::debug::Lookup only: false
| Cache Size: ~8 MB (8449799 B)
| [command]/usr/bin/tar -xf /tmp/397c456e-f8f8-4241-aca7-c328ecdbbde2/cache.tzst -P -C /mnt/Store/Projects/Mine/Github/bank-downloaders --use-compress-program unzstd
| Cache restored successfully
| Cache restored from key: linux-devbox-cli-0.8.2
[ReleaseManagement/Build  ]   โœ…  Success - Main Mount devbox cli cache
[ReleaseManagement/Build  ]   โš™  ::set-output:: cache-primary-key=Linux-devbox-cli-0.8.2
[ReleaseManagement/Build  ]   โš™  ::set-output:: cache-matched-key=linux-devbox-cli-0.8.2
[ReleaseManagement/Build  ]   โš™  ::set-output:: cache-hit=true
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Main Configure nix access-tokens
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-5.sh] user= workdir=
[ReleaseManagement/Build  ]   โœ…  Success - Main Configure nix access-tokens
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Main Install nix
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ]   ๐Ÿณ  docker cp src=/home/zenobius/.cache/act/DeterminateSystems-nix-installer-action@v4/ dst=/var/run/act/actions/DeterminateSystems-nix-installer-action@v4/
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /var/run/act/actions/DeterminateSystems-nix-installer-action@v4/] user=0 workdir=
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Main Install Nix
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/1-composite-6-composite-0.sh] user= workdir=
| Set NIX_INSTALLER_EXTRA_CONF=experimental-features = ca-derivations fetch-closure
| trusted-users = root 
| Set NIX_INSTALLER_URL=https://install.determinate.systems/nix?ci=github
| Set NIX_INSTALLER_LOGGER=pretty
| Set NIX_INSTALLER_DIAGNOSTIC_ENDPOINT=https://install.determinate.systems/nix/diagnostic
| Set NIX_INSTALLER_NO_CONFIRM=true
|   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
|                                  Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 16008  100 16008    0     0   9717      0  0:00:01  0:00:01 --:--:-- 64032
| info: downloading installer https://install.determinate.systems/nix/tag/v0.14.0/nix-installer-x86_64-linux
| `nix-installer` needs to run as `root`, attempting to escalate now via `sudo`...
| Error: 
|    0: Planner error
|    1: Error executing action
|    2: Action `configure_init_service` errored
|    3: Could not detect systemd; you may be able to get up and running without systemd with `nix-installer install linux --init none`.
|       See https://github.com/DeterminateSystems/nix-installer#without-systemd-linux-only for documentation on usage and drawbacks.
| 
| Location:
|    src/cli/subcommand/install.rs:197
| 
| Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
| Run with RUST_BACKTRACE=full to include source snippets.
| 
| Consider reporting this error using this URL: https://github.com/DeterminateSystems/nix-installer/issues/new?title=%3Cautogenerated-issue%3E&body=%23%23+Error%0A%60%60%60%0AError%3A+%0A+++0%3A+Planner+error%0A+++1%3A+Error+executing+action%0A+++2%3A+Action+%60configure_init_service%60+errored%0A+++3%3A+Could+not+detect+systemd%3B+you+may+be+able+to+get+up+and+running+without+systemd+with+%60nix-installer+install+linux+--init+none%60.%0A++++++See+https%3A%2F%2Fgithub.com%2FDeterminateSystems%2Fnix-installer%23without-systemd-linux-only+for+documentation+on+usage+and+drawbacks.%0A%60%60%60%0A%0A%23%23+Metadata%0A%7Ckey%7Cvalue%7C%0A%7C--%7C--%7C%0A%7C**version**%7C0.14.0%7C%0A%7C**os**%7Clinux%7C%0A%7C**arch**%7Cx86_64%7C%0A
[ReleaseManagement/Build  ]   โŒ  Failure - Main Install Nix
[ReleaseManagement/Build  ] exitcode '1': failure
[ReleaseManagement/Build  ]   โŒ  Failure - Main Install nix
[ReleaseManagement/Build  ] exitcode '1': failure
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[node /var/run/act/workflow/hashfiles/index.js] user= workdir=
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[node /var/run/act/workflow/hashfiles/index.js] user= workdir=
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ]   โŒ  Failure - Main setup jetpack devbox
[ReleaseManagement/Build  ] exitcode '1': failure
[ReleaseManagement/Build  ] โญ Run Post setup jetpack devbox
[ReleaseManagement/Build  ]   ๐Ÿณ  docker cp src=/home/zenobius/.cache/act/[email protected]/ dst=/var/run/act/actions/[email protected]/
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /var/run/act/actions/[email protected]/] user=0 workdir=
[ReleaseManagement/Build  ] 'runs-on' key not defined in ReleaseManagement/Build
[ReleaseManagement/Build  ] โญ Run Post Install nix
[ReleaseManagement/Build  ]   ๐Ÿณ  docker cp src=/home/zenobius/.cache/act/DeterminateSystems-nix-installer-action@v4/ dst=/var/run/act/actions/DeterminateSystems-nix-installer-action@v4/
[ReleaseManagement/Build  ]   ๐Ÿณ  docker exec cmd=[chown -R 1001:127 /var/run/act/actions/DeterminateSystems-nix-installer-action@v4/] user=0 workdir=
[ReleaseManagement/Build  ]   โœ…  Success - Post Install nix
[ReleaseManagement/Build  ]   โœ…  Success - Post setup jetpack devbox
[ReleaseManagement/Build  ] ๐Ÿ  Job failed
Error: Job 'Build' failed

Trouble setting up Elixir project on ubuntu:full-20.04

I am running a job that works on GitHub but having issues when using act to run locally.

I am using

๐Ÿš€  Start image=ghcr.io/catthehacker/ubuntu:full-20.04

the job definition (leaving out some of it for brevity) is:

jobs:
  cypress-run:
    runs-on: ubuntu-latest
    env:
      MIX_ENV: qa
    services:
      db:
        image: postgres:11.5
        ports: ["5432:5432"]
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: dpi_qa
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup Elixir
        uses: erlef/setup-beam@v1
        with:
          otp-version: 24.0
          elixir-version: 1.12.0
      - run: mix deps.get --only qa

on the last step here (getting mix dependencies) I get an error:

[Cypress Tests/cypress-run]   โœ…  Success - Setup Elixir
[Cypress Tests/cypress-run] โญ  Run mix deps.get --only qa
[Cypress Tests/cypress-run]   ๐Ÿณ  docker exec cmd=[bash --noprofile --norc -e -o pipefail /Users/pepsi/work/cdna_ui/workflow/2] user=
| warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)
| * Getting scrivener_html (https://github.com/jaimeiniesta/scrivener_html.git - origin/relax_phoenix_dep)
| ** (File.Error) could not make directory (with -p) "/Users/pepsi/work/cdna_ui/deps/scrivener_html": no such file or directory
|     (elixir 1.12.0) lib/file.ex:316: File.mkdir_p!/1
|     (mix 1.12.0) lib/mix/scm/git.ex:98: Mix.SCM.Git.checkout/1
|     (mix 1.12.0) lib/mix/dep/fetcher.ex:64: Mix.Dep.Fetcher.do_fetch/3
|     (mix 1.12.0) lib/mix/dep/converger.ex:190: Mix.Dep.Converger.all/9
|     (mix 1.12.0) lib/mix/dep/converger.ex:201: Mix.Dep.Converger.all/9
|     (mix 1.12.0) lib/mix/dep/converger.ex:123: Mix.Dep.Converger.all/7
|     (mix 1.12.0) lib/mix/dep/converger.ex:72: Mix.Dep.Converger.all/4
|     (mix 1.12.0) lib/mix/dep/converger.ex:51: Mix.Dep.Converger.converge/4
[Cypress Tests/cypress-run]   โŒ  Failure - mix deps.get --only qa
Error: exit with `FAILURE`: 1

this error does not happen when I use the ubuntu:act-20.04 image (however that image is missing some other deps I need elsewhere)

Include small utils like `less`

It would be nice if the image contained also small utils like less for easier interaction with the image.

I understand it's not the full image, but I cannot imagineless would be such a big burden to include in a "medium" image.

Still using Node14

Despite #47, images are still using node14, which among other things, is causing nektos/act#1681.

$ docker run --entrypoint /usr/local/bin/node ghcr.io/catthehacker/ubuntu:full-latest --version
> Unable to find image 'ghcr.io/catthehacker/ubuntu:full-latest' locally
> full-latest: Pulling from catthehacker/ubuntu
> Digest: sha256:598b616a8c7ce86d98ee63871cec532f4ff645125b563a8798f2ae1c98928ec7
> Status: Downloaded newer image for ghcr.io/catthehacker/ubuntu:full-latest
> v14.17.6

I also tried docker run --rm --entrypoint node catthehacker/ubuntu:full-latest -v with the same outcome.

Off topic: any idea why docker run --rm catthehacker/ubuntu:full-latest node -v doesn't work? I had the impression that the next argument after the docker image is taken as the entrypoint, and everything else as cmd arguments?

Missing libraries in ubuntu medium image prevent dotnet core from running tests

Thank you for act and the awesome set of default images to go with it. I'm still new to GitHub actions, so being able to play around locally gives me a bit of extra confidence.

I ran into a error (logs below) with act and the Medium image. I think there are some libraries missing that are needed by dotnet. The repository I was using act with is https://github.com/Tyrrrz/CliFx

I was able to work around the error by setting the environment variable DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1 (ref dotnet/core#2186) to the github action. I might take a look later regarding what needs to happen to the docker image to fix, but thought I'd give you a heads up.

Thanks for the great work!

[CI/build-1] โญ  Run Install .NET
[CI/build-1]   โ˜  git clone 'https://github.com/actions/setup-dotnet' # ref=v1.7.2
[CI/build-1]   ๐Ÿณ  docker cp src=act/[email protected] dst=/actions/
| [command]/actions/[email protected]/externals/install-dotnet.sh --version 5.0.103
| dotnet_install: Warning: Unable to locate zlib. Probable prerequisite missing; install zlib.
| dotnet_install: Warning: Unable to locate libicu. Probable prerequisite missing; install libicu.
| dotnet_install: Warning: Unable to locate liblttng. Probable prerequisite missing; install libcurl.
| dotnet-install: Downloading link: https://dotnetcli.azureedge.net/dotnet/Sdk/5.0.103/dotnet-sdk-5.0.103-linux-x64.tar.gz
| dotnet-install: Extracting zip from https://dotnetcli.azureedge.net/dotnet/Sdk/5.0.103/dotnet-sdk-5.0.103-linux-x64.tar.gz
| dotnet-install: Adding to current process PATH: `/github/home/.dotnet`. Note: This change will be visible only when sourcing script.
| dotnet-install: Installation finished successfully.
[CI/build-1]   โš™  ::add-path:: /github/home/.dotnet
| /github/home/.dotnet:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[CI/build-1]   โ“  ##[add-matcher]/actions/[email protected]/.github/csc.json
[CI/build-1]   โœ…  Success - Install .NET
[CI/build-1] โญ  Run Build & test
| Process terminated. Couldn't find a valid ICU package installed on the system. Set the configuration flag System.Globalization.Invariant to true if you want to run with no globalization support.
|    at System.Environment.FailFast(System.String)
|    at System.Globalization.GlobalizationMode.GetGlobalizationInvariantMode()
|    at System.Globalization.GlobalizationMode..cctor()
|    at System.Globalization.CultureData.CreateCultureWithInvariantData()
|    at System.Globalization.CultureData.get_Invariant()
|    at System.Globalization.CultureInfo..cctor()
|    at System.IO.TextWriter..cctor()
|    at System.IO.StreamWriter..ctor(System.IO.Stream, System.Text.Encoding, Int32, Boolean)
|    at System.Console.CreateOutputWriter(System.IO.Stream)
|    at System.Console.<get_Out>g__EnsureInitialized|25_0()
|    at System.Console.get_Out()
|    at Microsoft.DotNet.Cli.Utils.Reporter.Reset()
|    at Microsoft.DotNet.Cli.Utils.Reporter..cctor()
|    at Microsoft.DotNet.Cli.Utils.Reporter.get_Output()
|    at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(Microsoft.DotNet.Configurer.IFirstTimeUseNoticeSentinel, Microsoft.DotNet.Configurer.IAspNetCertificateSentinel, Microsoft.DotNet.Configurer.IFileSentinel, Boolean, Microsoft.DotNet.Configurer.DotnetFirstRunConfiguration, Microsoft.DotNet.Cli.Utils.IEnvironmentProvider)
|    at Microsoft.DotNet.Cli.Program.ProcessArgs(System.String[], Microsoft.DotNet.Cli.Telemetry.ITelemetry)
|    at Microsoft.DotNet.Cli.Program.Main(System.String[])
| /github/workflow/2: line 1:   223 Aborted                 dotnet test --configuration Release --logger GitHubActions
[CI/build-1]   โŒ  Failure - Build & test
Error: exit with `FAILURE`: 134

Should js-* images work with act to run workflows with node actions?

I have a workflow that calls an action that uses node12. When I attempt to run this workflow with act using either catthehacker/ubuntu:js-latest or catthehacker/ubuntu:act-latest I get
docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "node": executable file not found in $PATH: unknown.
This is the same error I get when I run docker run -it --rm ghcr.io/catthehacker/ubuntu:js-letest node. Node is not in the path, but I think it needs to be for this to work.
I am sure I am missing something, what is it?

Ubuntu:full-20.04 - mkdir: Permission denied, cannot create directory `_actions`.

I am executing this image with act.

When I use the version catthehacker/ubuntu:full-20.04 it is failing at the start because it is running as the use runner and not as a root.

Note: Interesting the original GitHub action is executing as a runner that means this copy is very similar to the original (https://github.com/airvzxf/bose-connect-app-linux/runs/2596465956).

Ubuntu full-20.04:

$ act -s GITHUB_TOKEN="${GITHUB_TOKEN}" -P ubuntu-latest=catthehacker/ubuntu:full-20.04
[CMake/build] ๐Ÿš€  Start image=catthehacker/ubuntu:full-20.04
[CMake/build]   ๐Ÿณ  docker run image=catthehacker/ubuntu:full-20.04 platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]
[CMake/build] โญ  Run whoami
| runner
[CMake/build]   โœ…  Success - whoami
[CMake/build] โญ  Run actions/checkout@v2
[CMake/build]   โ˜  git clone 'https://github.com/actions/checkout' # ref=v2
[CMake/build]   ๐Ÿณ  docker cp src=/home/wolf/.cache/act/actions-checkout@v2/ dst=/home/wolf/workspace/projects/bose-connect-app-linux/_actions/actions-checkout@v2/
| mkdir: cannot create directory '/home/wolf/workspace/projects/bose-connect-app-linux/_actions': Permission denied
[CMake/build]   โŒ  Failure - actions/checkout@v2
Error: exit with `FAILURE`: 1

Ubuntu act-latest:

$ act -s GITHUB_TOKEN="${GITHUB_TOKEN}" -P ubuntu-latest=catthehacker/ubuntu:act-latest
[CMake/build] ๐Ÿš€  Start image=catthehacker/ubuntu:act-latest                                                                           
[CMake/build]   ๐Ÿณ  docker run image=catthehacker/ubuntu:act-latest platform= entrypoint=["/usr/bin/tail" "-f" "/dev/null"] cmd=[]     
[CMake/build] โญ  Run whoami                                                                                                           
| root                                                                                                                                 
[CMake/build]   โœ…  Success - whoami                                                                                                   
[CMake/build] โญ  Run actions/checkout@v2                                                                                              
[CMake/build]   โ˜  git clone 'https://github.com/actions/checkout' # ref=v2                                                            
[CMake/build]   ๐Ÿณ  docker cp src=/home/wolf/.cache/act/actions-checkout@v2/ dst=/home/wolf/workspace/projects/bose-connect-app-linux/_
actions/actions-checkout@v2/                                                                                                           
[CMake/build]   โ“  ::save-state name=isPost,::true                                                                                    
[CMake/build]   ๐Ÿ’ฌ  ::debug::GITHUB_WORKSPACE = '/home/wolf/workspace/projects/bose-connect-app-linux'                                 
[CMake/build]   ๐Ÿ’ฌ  ::debug::qualified repository = 'airvzxf/bose-connect-app-linux'
[CMake/build]   ๐Ÿ’ฌ  ::debug::ref = 'refs/heads/main'
[CMake/build]   ๐Ÿ’ฌ  ::debug::commit = 'e6b3b1aa5657834e41c022710a33ecc60c5d44b9'
[CMake/build]   ๐Ÿ’ฌ  ::debug::clean = true
[CMake/build]   ๐Ÿ’ฌ  ::debug::fetch depth = 1
[CMake/build]   ๐Ÿ’ฌ  ::debug::lfs = false
[CMake/build]   ๐Ÿ’ฌ  ::debug::submodules = false
[CMake/build]   ๐Ÿ’ฌ  ::debug::recursive submodules = false
[CMake/build]   โ“  ::add-matcher::/home/wolf/workspace/projects/bose-connect-app-linux/_actions/actions-checkout@v2/dist/problem-match

YAML file

name: CMake

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  workflow_dispatch:

env:
  BUILD_TYPE: Release

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - run: whoami
    - uses: actions/checkout@v2
    # More steps added but not showed in this representation.

Display current directory

$ ls -lha
total 68K
drwxr-xr-x  5 wolf users 4.0K May 16 18:57 .
drwxr-xr-x 27 wolf users 4.0K May 14 19:37 ..
-rw-r--r--  1 wolf users 2.4K May 15 23:40 DETAILS.md
drwxr-xr-x  8 wolf users 4.0K May 16 19:06 .git
drwxr-xr-x  3 wolf users 4.0K May 16 16:49 .github
-rw-r--r--  1 wolf users  35K May 14 16:14 LICENSE
-rw-r--r--  1 wolf users 3.2K May 16 16:48 README.md
drwxr-xr-x 10 wolf users 4.0K May 16 18:40 src
-rw-r--r--  1 wolf users 1.3K May 16 15:53 TODO.md

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.