Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Development Containers

Simple dev containers. Can be used in devcontainer.json and run e.g. locally or in GitHub Codespaces.

Dev images overview

Image Based on Note
dev-node dhi.io/debian-base:trixie-dev Base dev tools, Node.js LTS + pnpm
dev-playwright dev-node Playwright browser dependencies preinstalled
dev-firebase dev-playwright JRE to run Firebase Emulators
dev-quizmaster dev-playwright OpenJDK to develop scrumdojo/quizmaster
dev-rust dev-node Run development stack

Security design principles

These images aim to reduce common supply-chain and credential risks in day-to-day development, while staying practical for local use.

  • Non-root dev:dev (1001:1001) user by default
  • sudo restricted to apt-get and service ssh management
  • Disabled npm lifecycle scripts by default (ignore-scripts=true)
  • Use fine-grained GITHUB_TOKEN to access only project repository

This is not a complete security boundary. Treat these images as a safer default, then add project-specific controls as needed.

Base Container with Node.js

Base development environment with Node.js LTS to run all common AI Coding Agent CLIs.

Available at: ghcr.io/scrumdojo/dev-node:v5

  • Based on Debian Trixie debian:13.5
  • OpenSSH server (off by default)
  • git and GitHub CLI (gh)
  • zsh with common plugins, tmux, fzf, ripgrep, fd and other modern CLI tools
  • Node.js managed by fnm, and pnpm
  • oh-my-posh

Install common AI Coding Agent CLIs in: /home/dev/init/

Node.js with Playwright dependencies

Development container with pre-installed Playwright browser system dependencies Playwright itself, not any browser, are not pre-installed, as their versions are project specific, and need to be installed inside the container for each respective project.

Available at: ghcr.io/scrumdojo/dev-playwright:v5

Firebase Emulator ready

Development container with headless JRE to run Firebase Emulators. Firebase CLI itself (which contain the emulators) is not pre-installed, as it is updated frequently.

Available at: ghcr.io/scrumdojo/dev-firebase:v5

  • Based on ghcr.io/scrumdojo/dev-playwright:v5
  • Headless Java JRE to run the Firebase Emulators

Firebase CLI

Install Firebase CLI: pnpm install -g firebase-tools

Login to Firebase from within the container: firebase login --no-localhost

Rust Development

Available at: ghcr.io/scrumdojo/dev-rust:v5

  • Based on ghcr.io/scrumdojo/dev-node:v5
  • Rust development stack

How to use

Example compose file to create a dev container locally:

services:
    dev-container:
        # one of the above images
        image: ghcr.io/scrumdojo/dev-node:v5
        container_name: dev-container
        hostname: dev-container
        environment:
            - TZ=
            - GIT_USER_NAME=
            - GIT_USER_EMAIL=
            - GITHUB_TOKEN=
            - SSH_START=
            - SSH_PUBKEY=
        volumes:
            - devhome:/home/dev

volumes:
    devhome:

Inside the container, run ~/init/git.sh to initialize ~/.gitconfig with your user name and email, and login to GitHub using gh and provided GITHUB_TOKEN.

SSH Access

For sshd to autostart, pass SSH_START=true to the container.

You can pass your public SSH key via SSH_PUBKEY, which gets added to ~/.ssh/authorized_keys.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages