Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

37 Commits

Repository files navigation

RawPair Stacks

This repository provides official Docker images for development environments used with RawPair. These stacks are designed for collaborative, short-lived sessions—where convenience matters more than minimalism.

Each image includes:

  • A full toolchain for a specific language (e.g., Elixir, Ada, Prolog)
  • Sane defaults and ready-to-use configuration
  • Everything needed to get started without manual setup

These images are intended for ephemeral, sandboxed sessions, not public-facing or production deployments.

They prioritize developer convenience over strict hardening: full toolchains, common tools pre-installed, minimal setup required.
This makes them ideal for short-lived environments where speed and simplicity matter most—like live coding, pair programming, or onboarding sessions.

They are not security-hardened for internet exposure or long-term persistence, and we strongly recommend against using them outside controlled environments.


Required Components

To integrate properly with RawPair, each container must include:

  • bash — shell consistency
  • tmux — terminal multiplexing
  • supervisor — process management
  • vector — log streaming to the host
  • ttyd — exposes the terminal over HTTP

These enable RawPair's real-time terminal access, session orchestration, and logging. Without them, your container will not function correctly inside the system.


Required Config Files

Each image must also include three configuration files:

  • supervisord.conf
  • ttyd-wrapper.sh
  • vector.toml

These are provided in the docker/ folder of the main repo. You should copy them into your image during the build process.


💡 Customizing Stacks

You’re free to build your own stacks, but make sure to keep the required components.
In short: build your own, but build smart.

Supported Tech Stacks

The majority of the Docker images in this repo are available on https://hub.docker.com/u/rawpair

StackDocker RepositoryNotes
Adarawpair/adaIncludes GNU GNAT
Chicken Schemerawpair/chicken-schemeIncludes csi, csc, and chicken-install
Clojurerawpair/clojureRuns on Temurin (OpenJDK)
CBQNrawpair/cbqn
COBOLrawpair/gnucobolIncludes GNU COBOL
Elixirrawpair/elixirIncludes Mix and Hex
Gambit Schemerawpair/gambit-schemeIncludes gsi and gsc
Guilerawpair/gnuguile
Haskellrawpair/haskellIncludes GHC
Janetrawpair/janetIncludes Janet CLI and jpm
Juliarawpair/juliaREPL and package manager built-in
.NETrawpair/dotnetIncludes C#, F#, VB.NET, Mono
Liberty Eiffelrawpair/liberty-eiffelCompiled from source
Metasploitrawpair/metasploitMetasploit Framework
MIT/GNU Schemerawpair/mit-gnu-scheme
Nimrawpair/nimIncludes nimble
Node.jsrawpair/nodeManaged via NVM
OCamlrawpair/ocamlIncludes OPAM, OCaml 4.14.1, Dune, Menhir
PHPrawpair/phpIncludes FPM/CLI; PHP 8.0–8.3
Pythonrawpair/python2 base images available: Trixie; NVIDIA CUDA
Racketrawpair/racketIncludes raco and CLI REPL
Rubyrawpair/rubyIncludes RubyGems
Rustrawpair/rust
Smalltalkrawpair/gnusmalltalkIncludes GNU Smalltalk
Steel Bank Common Lisprawpair/sbclIncludes SBCL and Quicklisp
Zigrawpair/zig

Can't see your favourite stack? Submit a PR or create an issue.

Usage

Each Dockerfile is intended to be used by RawPair internally. You can also test them standalone:

Render list of all possible permutations:

cd stacks
./build-images.sh --dry-run

Example: generating Elixir images

cd stacks
./build-images.sh --filter=elixir

Generating multi-arch images

Some Docker images support multi-arch. Although dockerx can build arm64 images via QEMU, this is not recommended as it is painfully slow. Instead, we recommend getting hold of a Raspberry Pi or an ARM server.

Assuming the main docker node is amd64 arch:

docker buildx create --name multiarch --use --platform linux/amd64

Optionally append arm64 remote builder:

docker buildx create --append --name multiarch --platform linux/arm64 arm-vps

Inspect:

docker buildx inspect rawpair-builder --bootstrap

cd stacks

Ada (GNAT)

Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/ada:bookworm -f ./ada/bookworm/Dockerfile --push .

Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/ada:trixie -f ./ada/trixie/Dockerfile --push .

Chicken Scheme

Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/chicken-scheme:bookworm -f ./chicken-scheme/bookworm/Dockerfile --push .

Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/chicken-scheme:trixie -f ./chicken-scheme/trixie/Dockerfile --push .

Clojure

Temurin 21 - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/clojure:temurin-21-bookworm -f ./clojure/clojure:temurin-21-bookworm/Dockerfile --push .

Temurin 22 - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/clojure:temurin-22-bookworm -f ./clojure/clojure:temurin-22-bookworm/Dockerfile --push .

Temurin 23 - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/clojure:temurin-23-bookworm -f ./clojure/clojure:temurin-23-bookworm/Dockerfile --push .

Temurin 24 - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/clojure:temurin-24-bookworm -f ./clojure/clojure:temurin-24-bookworm/Dockerfile --push .

Elixir - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/elixir:bookworm -f ./elixir/bookworm/Dockerfile --push .

Gambit Scheme

Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gambit-scheme:bookworm -f ./gambit-scheme/bookworm/Dockerfile --push .

Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gambit-scheme:trixie -f ./gambit-scheme/trixie/Dockerfile --push .

CBQN

Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/cbqn:bookworm -f ./cbqn/bookworm/Dockerfile --push .

GNU COBOL

Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gnucobol:bookworm -f ./gnucobol/bookworm/Dockerfile --push .

Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gnucobol:trixie -f ./gnucobol/trixie/Dockerfile --push .

GNU Guile

Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gnuguile:bookworm -f ./gnuguile/bookworm/Dockerfile --push .

Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gnuguile:trixie -f ./gnuguile/trixie/Dockerfile --push .

GNU Smalltalk - Ubuntu 24.04

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/gnusmalltalk:trixie -f ./gnusmalltalk/trixie/Dockerfile --push .

Haskell - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/haskell:trixie -f ./haskell/trixie/Dockerfile --push .

Janet - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/janet:bookworm -f ./janet/bookworm/Dockerfile --push .

Julia - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/julia:trixie -f ./julia/trixie/Dockerfile --push .

Liberty Eiffel - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/liberty-eiffel:bookworm -f ./liberty-eiffel/bookworm/Dockerfile --push .

Metasploit Framework - 6.4.0

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/metasploit:6.4.0 -f ./metasploit/6.4.0/Dockerfile --push .

MIT/GNU Scheme

Debian Bookworm

docker buildx build --platform linux/amd64 -t rawpair/mit-gnu-scheme:bookworm -f ./mit-gnu-scheme/bookworm/Dockerfile --push .

Nim - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/nim:trixie -f ./nim/trixie/Dockerfile --push .

Node - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/node:trixie -f ./node/trixie/Dockerfile --push .

OCaml - Ubuntu 24.04

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/ocaml:ubuntu-2404 -f ./ocaml/ubuntu-2404/Dockerfile --push .

PHP - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/php:trixie -f ./php/trixie/Dockerfile --push .

Python - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/python:trixie -f ./python/trixie/Dockerfile --push .

Racket - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/racket:trixie -f ./racket/trixie/Dockerfile --push .

Ruby - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/ruby:trixie -f ./ruby/trixie/Dockerfile --push .

Rust - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/rust:trixie -f ./rust/trixie/Dockerfile --push .

Steel Bank Common Lisp - Debian Trixie

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/sbcl:trixie -f ./sbcl/trixie/Dockerfile --push .

Zig - Debian Bookworm

docker buildx build --platform linux/amd64,linux/arm64 -t rawpair/zig:bookworm -f ./zig/bookworm/Dockerfile --push .

Generating images through background jobs

Wrap the command with nohup <command> > build.log 2>&1 &.

About

Official stacks for RawPair

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages