Is wget Installed? Runner Images and Install
wget ships on many CI runner images but is missing from minimal containers like slim Debian or base Alpine, where you must install it.
Do not assume wget exists. Full Ubuntu runners usually have it; slim and Alpine images often do not, and a missing wget fails the step with command not found.
What it does
wget is a separate package, not part of every base image. Large CI runner images (such as the standard GitHub-hosted Ubuntu runners) generally include it. Minimal containers used in jobs (debian:slim, alpine) frequently omit it, or ship BusyBox wget with a reduced flag set.
Common usage
# check first
command -v wget || echo "wget missing"
# Debian/Ubuntu
apt-get update && apt-get install -y wget
# Alpine
apk add --no-cache wgetOptions
| Image | wget availability |
|---|---|
| Standard hosted Ubuntu runner | Usually preinstalled |
| debian:slim | Often absent; apt-get install wget |
| alpine | Absent or BusyBox wget; apk add wget |
| busybox | Provides a limited wget (fewer flags) |
In CI
Guard download steps with command -v wget and install if missing, or pin a base image that includes it. On Alpine, apk add wget replaces BusyBox wget with GNU wget so flags like --content-disposition and recursive options behave as documented.
Common errors in CI
wget: command not found (or /bin/sh: wget: not found on Alpine) means the package is absent; install it or use curl. BusyBox wget rejecting a GNU-only flag with "wget: unrecognized option" means you have the BusyBox build; install GNU wget with apk add wget.