|
| 1 | +--- |
| 2 | +title: Agent Image Tools |
| 3 | +description: Pre-installed development tools and versions in the agent and agent-act container images. |
| 4 | +--- |
| 5 | + |
| 6 | +Reference guide for the development tools, utilities, and runtime versions pre-installed in the `agent` and `agent-act` container images used by the firewall. |
| 7 | + |
| 8 | +## Overview |
| 9 | + |
| 10 | +The firewall uses two main container image types for running user commands: |
| 11 | + |
| 12 | +- **`agent` (default)**: Lightweight Ubuntu 22.04-based image with essential dev tools |
| 13 | +- **`agent-act`**: GitHub Actions runner-compatible image based on Ubuntu 24.04 |
| 14 | + |
| 15 | +### Image Selection |
| 16 | + |
| 17 | +Use the `--agent-image` flag to choose which image to use: |
| 18 | + |
| 19 | +```bash |
| 20 | +# Default agent image (lightweight) |
| 21 | +sudo awf --allow-domains github.com -- node --version |
| 22 | + |
| 23 | +# GitHub Actions-compatible image |
| 24 | +sudo awf --agent-image act --allow-domains github.com -- node --version |
| 25 | +``` |
| 26 | + |
| 27 | +### Base Images |
| 28 | + |
| 29 | +| Image | Base | Purpose | |
| 30 | +|-------|------|---------| |
| 31 | +| `agent` | `ubuntu:22.04` | Minimal development environment with Node.js, Python, git | |
| 32 | +| `agent-act` | `catthehacker/ubuntu:act-24.04` | GitHub Actions runner subset with multiple runtime versions | |
| 33 | + |
| 34 | +:::note |
| 35 | +The `agent-act` image inherits from [catthehacker/docker_images](https://github.com/catthehacker/docker_images), which provides medium-sized subsets of GitHub Actions runner images. For full GitHub Actions runner parity, you need the full-sized images (60GB+). See the catthehacker repository for details on runner compatibility. |
| 36 | +::: |
| 37 | + |
| 38 | +## Verifying Tools Locally |
| 39 | + |
| 40 | +Check installed tools and versions by running bash in the container: |
| 41 | + |
| 42 | +```bash |
| 43 | +# Verify tools in agent image |
| 44 | +sudo awf --allow-domains '' -- bash -c 'node --version && python3 --version && git --version' |
| 45 | + |
| 46 | +# Verify tools in agent-act image |
| 47 | +sudo awf --agent-image act --allow-domains '' -- bash -c 'which -a node && node --version' |
| 48 | + |
| 49 | +# Interactive exploration |
| 50 | +sudo awf --tty --allow-domains '' -- bash |
| 51 | +``` |
| 52 | + |
| 53 | +## Agent Image Tools |
| 54 | + |
| 55 | +The default `agent` image (based on Ubuntu 22.04) includes the following pre-installed tools: |
| 56 | + |
| 57 | +| Tool | Version | Package | Notes | |
| 58 | +|------|---------|---------|-------| |
| 59 | +| Node.js | v22.22.0 | — | Includes npm, npx | |
| 60 | +| npm | 10.9.4 | — | — | |
| 61 | +| npx | 10.9.4 | — | — | |
| 62 | +| Python | 3.10.12 | — | No pip installed by default | |
| 63 | +| git | 2.34.1 | `git` | Standard git client | |
| 64 | +| GitHub CLI | 2.4.0+dfsg1 | `gh-cli` | `gh` command for GitHub API | |
| 65 | +| curl | 7.81.0 | `curl` | HTTP client | |
| 66 | +| dig | 9.18.39 | `dnsutils` | DNS lookup utility | |
| 67 | +| ifconfig | 2.10-alpha | `net-tools` | Network interface config | |
| 68 | +| netcat | 1.218 | `netcat-openbsd` | TCP/UDP connections | |
| 69 | +| iptables | 1.8.7 | `iptables` | Firewall rules (host-level control) | |
| 70 | +| gosu | 1.14 | `gosu` | Run commands as other users | |
| 71 | +| capsh | — | `libcap2-bin` | Capability management | |
| 72 | +| gnupg | 2.2.27 | `gnupg` | GPG encryption | |
| 73 | +| ca-certificates | — | `ca-certificates` | Trusted root certificates | |
| 74 | + |
| 75 | +:::caution[Docker CLI Stub] |
| 76 | +The `docker` command is present but is a stub—there is no Docker daemon running inside the container. Docker-in-Docker is not supported. Use `--mount` to access Docker sockets from the host if needed. |
| 77 | +::: |
| 78 | + |
| 79 | +## Agent-Act Image Tools |
| 80 | + |
| 81 | +The `agent-act` image (based on Ubuntu 24.04) includes the following pre-installed tools: |
| 82 | + |
| 83 | +| Tool | Version | Package | Notes | |
| 84 | +|------|---------|---------|-------| |
| 85 | +| Node.js | v18.20.8 | — | Default in PATH (from `/opt/hostedtoolcache`) | |
| 86 | +| npm | 10.8.2 | — | Bundled with Node.js 18 | |
| 87 | +| npx | 10.8.2 | — | Bundled with Node.js 18 | |
| 88 | +| corepack | 0.32.0 | — | Yarn/pnpm manager | |
| 89 | +| Node.js (system) | v22.22.0 | — | Alternative system installation at `/usr/bin/node` | |
| 90 | +| Python | 3.12.3 | — | Includes pip 24.0 | |
| 91 | +| pip | 24.0 | — | Python package manager | |
| 92 | +| git | 2.52.0 | `git` | Standard git client | |
| 93 | +| GitHub CLI | 2.45.0 | `gh-cli` | `gh` command for GitHub API | |
| 94 | +| git-lfs | 3.7.1 | `git-lfs` | Git Large File Storage | |
| 95 | +| gcc | 13.3.0 | `build-essential` | C compiler | |
| 96 | +| g++ | 13.3.0 | `build-essential` | C++ compiler | |
| 97 | +| make | 4.3 | `build-essential` | Build automation | |
| 98 | +| build-essential | — | `build-essential` | Metapackage with common build tools | |
| 99 | +| curl | 8.5.0 | `curl` | HTTP client | |
| 100 | +| dig | 9.18.39 | `dnsutils` | DNS lookup utility | |
| 101 | +| ifconfig | 2.10 | `net-tools` | Network interface config | |
| 102 | +| netcat | 1.226 | `netcat-openbsd` | TCP/UDP connections | |
| 103 | +| iptables | 1.8.10 | `iptables` | Firewall rules (host-level control) | |
| 104 | +| gosu | 1.17 | `gosu` | Run commands as other users | |
| 105 | +| capsh | — | `libcap2-bin` | Capability management | |
| 106 | +| jq | 1.6 | `jq` | JSON processor | |
| 107 | +| gnupg | — | `gnupg` | GPG encryption | |
| 108 | +| ca-certificates | — | `ca-certificates` | Trusted root certificates | |
| 109 | + |
| 110 | +:::caution[Docker CLI Stub] |
| 111 | +The `docker` command is present but is a stub—there is no Docker daemon running inside the container. Docker-in-Docker is not supported. Use `--mount` to access Docker sockets from the host if needed. |
| 112 | +::: |
| 113 | + |
| 114 | +## Custom Base Images |
| 115 | + |
| 116 | +You can use custom base images with `--agent-image`: |
| 117 | + |
| 118 | +```bash |
| 119 | +# Use a specific version of the act image |
| 120 | +sudo awf \ |
| 121 | + --agent-image catthehacker/ubuntu:act-24.04 \ |
| 122 | + --build-local \ |
| 123 | + --allow-domains github.com \ |
| 124 | + -- npm test |
| 125 | + |
| 126 | +# Use your own custom image |
| 127 | +sudo awf \ |
| 128 | + --agent-image myorg/my-base:latest \ |
| 129 | + --build-local \ |
| 130 | + --allow-domains github.com \ |
| 131 | + -- ./my-script.sh |
| 132 | +``` |
| 133 | + |
| 134 | +:::danger[Security Risk] |
| 135 | +Custom base images introduce supply chain risks. Only use images from trusted publishers. The firewall cannot protect against malicious code in the base image itself. |
| 136 | +::: |
| 137 | + |
| 138 | +## See Also |
| 139 | + |
| 140 | +- [CLI Reference](/gh-aw-firewall/reference/cli-reference) - Complete `--agent-image` flag documentation |
| 141 | +- [Usage Guide](/gh-aw-firewall/usage) - Examples of using different agent images |
| 142 | +- [catthehacker/docker_images](https://github.com/catthehacker/docker_images) - Source repository for GitHub Actions runner images |
0 commit comments