diff --git a/Dockerfile b/Dockerfile index ac271ef..c00ef2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,8 +19,11 @@ ENV HELM_VERSION=3.7.1 RUN helper-curl tar "--strip-components=1 linux-@GOARCH/helm" \ https://get.helm.sh/helm-v${HELM_VERSION}-linux-@GOARCH.tar.gz +# Use emulation instead of cross-compilation for that one. +# (The source is small enough, so I don't know if cross-compilation +# would be worth the effort.) FROM alpine AS httping -RUN apk add build-base gettext git musl-libintl +RUN apk add build-base fftw-dev gettext git musl-libintl ncurses-dev RUN git clone https://salsa.debian.org/debian/httping WORKDIR httping RUN sed -i s/60/0/ utils.c @@ -165,6 +168,32 @@ COPY --chown=1000:1000 vimrc /home/k8s/.vimrc COPY motd /etc/motd COPY setup-tailhist.sh /usr/local/bin +# Generate a list of all installed versions. +RUN ( \ + ab -V | head -n1 ;\ + bash --version | head -n1 ;\ + curl --version | head -n1 ;\ + docker version --format="Docker {{.Client.Version}}" ;\ + git --version ;\ + jq --version ;\ + ssh -V ;\ + tmux -V ;\ + docker-compose version ;\ + echo "Helm $(helm version --short)" ;\ + httping --version ;\ + jid --version ;\ + echo "kubectl $(kubectl version --short --client)" ;\ + echo "kube-linter $(kube-linter version)" ;\ + kubeseal --version ;\ + kustomize version --short ;\ + echo "popeye $(popeye version | grep Version)" ;\ + echo "regctl $(regctl version --format={{.VCSTag}})" ;\ + echo "ship $(ship version | jq .version)" ;\ + echo "skaffold $(skaffold version)" ;\ + echo "stern $(stern --version | grep ^version)" ;\ + echo "tilt $(tilt version)" ;\ + ) > versions.txt + # If there is a tty, give us a shell. # (This happens e.g. when we do "docker run -ti jpetazzo/shpod".) # Otherwise, start an SSH server. diff --git a/README.md b/README.md index 8e02fb9..bbeb30f 100644 --- a/README.md +++ b/README.md @@ -12,28 +12,36 @@ Dockerfile! ## What's this? `shpod` is a container image based on the Alpine distribution -and embarking a bunch of tools useful when working with Kubernetes: +and embarking a bunch of tools useful when working with containers, +Docker, and Kubernetes. -- compose -- helm +It includes: + +- ab (ApacheBench) +- bash +- curl +- Docker CLI +- Docker Compose +- git +- Helm - jid - jq -- krew - kubectl - kubectx + kubens +- kube-linter - kube-ps1 - kubeseal -- k9s +- kustomize +- popeye +- regctl - ship - skaffold +- SSH - stern - tilt - -It also includes: - -- completion for all these tools - tmux -- an SSH server + +It also includes completion for most of these tools. Its goal is to provide a normalized environment, to go with the training materials at https://container.training/, @@ -185,3 +193,11 @@ where shpod is running, it will extract the first file from that ConfigMap and use it to populate `~/.kube/config`. This lets you inject a custom kubeconfig file into shpod. + + +## Support for other architectures + +As of November 2021, the Dockerfile in this repository should be able +to build images for other architectures. However, when trying to install +a compiled binary that is not available for another architecture, a dummy +placeholder will be installed instead. diff --git a/motd b/motd index 6ef986b..b949a43 100644 --- a/motd +++ b/motd @@ -1,4 +1,5 @@ 🐚 Welcome to shpod - SHell in a POD. -📃 See https://github.com/jpetazzo/shpod for more information. +🔎 Check "versions.txt" to see the list of included tools. +🔗 See https://github.com/jpetazzo/shpod for more information.