diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index 7593051..fa0784d 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -55,6 +55,7 @@ Never duplicate: wiki pages link to READMEs, READMEs link back. Every wiki page - Dockerfile instruction order: ARG → FROM → packages → user/permissions → tools → LABEL - For images with multiple binary downloads, use multi-stage parallel builds (see `ralphex-fe/Dockerfile`) - Commit every `.sh` file as `100755` (they all have a shebang); check with `git ls-files -s '*.sh'` +- README headings are plain text, no emoji. Per-image READMEs use these shared section names, in this order, wherever the section exists: `Features` → `Multi-platform Support` → `Image Tags` → `Usage` → image-specific sections → `Build Args` → `Building the Image` → `Resources` → `License` → `Contributing`. Shared boilerplate (platform list, buildx block) is worded identically; only each image's tag scheme and paths differ. ## Validation diff --git a/README.md b/README.md index 08d4415..ec86924 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ This repository contains Dockerfiles for custom Docker images hosted on GitHub C **New here?** The [wiki](https://github.com/gatezh/devcontainers/wiki) has a [guide to picking an image](https://github.com/gatezh/devcontainers/wiki/Choosing-an-Image) and explains [what `latest` means and when it moves](https://github.com/gatezh/devcontainers/wiki/Image-Tags-and-Rebuild-Policy). -## 📚 Image Documentation +## Image Documentation ### Devcontainer Images @@ -18,7 +18,7 @@ This repository contains Dockerfiles for custom Docker images hosted on GitHub C - **[ralphex-fe](./ralphex-fe/README.md)** - Bun + Hugo Extended on ralphex base (standalone image) -## 📖 Guides (wiki) +## Guides (wiki) Cross-image guides and host-level procedures live in the [wiki](https://github.com/gatezh/devcontainers/wiki), because they go stale when Docker or GitHub changes rather than when this repo does. diff --git a/bun/README.md b/bun/README.md index 4389b1f..b765c82 100644 --- a/bun/README.md +++ b/bun/README.md @@ -9,44 +9,16 @@ A multiplatform development container image with Bun runtime, optimized for mode - **Zsh** - Modern shell with better VS Code integration - **Alpine Linux** - Lightweight base image -## Multiplatform Support +## Multi-platform Support This image is built for multiple architectures: - `linux/amd64` (x86_64) - `linux/arm64` (ARM64/Apple Silicon) -## Building the Image - -To build this multiplatform image, use Docker Buildx: - -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io//devcontainers/bun:bun-alpine \ - -t ghcr.io//devcontainers/bun:latest \ - --push \ - .devcontainer -``` - -### Example with specific versions: - -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io/myusername/devcontainers/bun:bun1.3.5-alpine \ - -t ghcr.io/myusername/devcontainers/bun:latest \ - --push \ - .devcontainer -``` - -**Replace:** -- `` with your GitHub username or organization -- `` with the Bun version (e.g., `1.3.5`) +## Image Tags -**Note:** The `--push` flag requires you to be logged in to GitHub Container Registry: -```bash -echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin -``` +- `latest` — most recent build +- `bun-alpine` — version-specific tag (e.g., `bun1.3.5-alpine`) ## Usage @@ -96,7 +68,31 @@ The development container comes pre-configured with the following extensions: - **Tailwind CSS IntelliSense** (`bradlc.vscode-tailwindcss`) - Autocomplete and syntax highlighting - **Tailwind Fold** (`stivo.tailwind-fold`) - Fold long Tailwind class strings -## Version Information +## Development Workflow + +### Starting the Dev Container + +1. Open your project in VS Code +2. Press `F1` and select "Dev Containers: Reopen in Container" +3. VS Code will pull the image and start the container + +### Using Bun + +```bash +# Install dependencies +bun install + +# Run scripts +bun run build + +# Execute files +bun run index.ts + +# Start development server +bun run dev +``` + +## Build Args The image uses a specific version of Bun defined as a build argument: @@ -116,28 +112,37 @@ docker buildx build \ .devcontainer ``` -## Development Workflow +## Building the Image -### Starting the Dev Container +To build this multiplatform image, use Docker Buildx: -1. Open your project in VS Code -2. Press `F1` and select "Dev Containers: Reopen in Container" -3. VS Code will pull the image and start the container +```bash +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io//devcontainers/bun:bun-alpine \ + -t ghcr.io//devcontainers/bun:latest \ + --push \ + .devcontainer +``` -### Using Bun +### Example with Specific Versions ```bash -# Install dependencies -bun install - -# Run scripts -bun run build +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io/myusername/devcontainers/bun:bun1.3.5-alpine \ + -t ghcr.io/myusername/devcontainers/bun:latest \ + --push \ + .devcontainer +``` -# Execute files -bun run index.ts +**Replace:** +- `` with your GitHub username or organization +- `` with the Bun version (e.g., `1.3.5`) -# Start development server -bun run dev +**Note:** The `--push` flag requires you to be logged in to GitHub Container Registry: +```bash +echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin ``` ## License diff --git a/claude-bun/README.md b/claude-bun/README.md index eebcae7..b62d481 100644 --- a/claude-bun/README.md +++ b/claude-bun/README.md @@ -12,7 +12,18 @@ Claude Code development container based on the [official Anthropic devcontainer - **Session persistence** for command history and Claude configuration between restarts - **Multi-platform support** (linux/amd64, linux/arm64) -## Quick Start +## Multi-platform Support + +This image is built for multiple architectures: +- `linux/amd64` (x86_64) +- `linux/arm64` (ARM64/Apple Silicon) + +## Image Tags + +- `latest` — most recent build +- `bun-slim` — version-specific tag (e.g., `bun1.3.5-slim`) + +## Usage ### Using the pre-built image @@ -72,11 +83,6 @@ When executed with `--dangerously-skip-permissions`, devcontainers do **not prev | `devcontainer.json` | VS Code devcontainer settings | | `init-firewall.sh` | Firewall initialization script | -## Image Tags - -- `ghcr.io/gatezh/devcontainers/claude-bun:latest` - Latest build -- `ghcr.io/gatezh/devcontainers/claude-bun:bun1.3.5-slim` - Bun version specific tag - ## Customization ### Adding VS Code extensions diff --git a/hugo-bun-node/README.md b/hugo-bun-node/README.md index 5b2b2a1..c242794 100644 --- a/hugo-bun-node/README.md +++ b/hugo-bun-node/README.md @@ -2,7 +2,7 @@ A multiplatform development container image combining Hugo Extended, Bun runtime, and Node.js LTS, optimized for modern static site development workflows with Cloudflare Workers support. -## 🌟 Features +## Features - **Hugo Extended** - Full-featured static site generator with extended capabilities - **Bun Runtime** - Fast JavaScript runtime, bundler, and package manager @@ -12,48 +12,18 @@ A multiplatform development container image combining Hugo Extended, Bun runtime - **Zsh** - Modern shell with better VS Code integration - **Alpine Linux** - Lightweight base image with glibc compatibility (gcompat) -## 🏗️ Multiplatform Support +## Multi-platform Support This image is built for multiple architectures: - `linux/amd64` (x86_64) - `linux/arm64` (ARM64/Apple Silicon) -## 📦 Building the Image +## Image Tags -To build this multiplatform image, use Docker Buildx: - -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io//devcontainers/hugo-bun-node:hugo-bun-node-alpine \ - -t ghcr.io//devcontainers/hugo-bun-node:latest \ - --push \ - .devcontainer -``` - -### Example with specific versions: - -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io/myusername/devcontainers/hugo-bun-node:hugo0.155.1-bun1.3.8-node24.13.0-alpine \ - -t ghcr.io/myusername/devcontainers/hugo-bun-node:latest \ - --push \ - .devcontainer -``` +- `latest` — most recent build +- `hugo-bun-node-alpine` — version-specific tag (e.g., `hugo0.155.1-bun1.3.8-node24.13.0-alpine`) -**Replace:** -- `` with your GitHub username or organization -- `` with the Hugo version (e.g., `0.155.1`) -- `` with the Bun version (e.g., `1.3.8`) -- `` with the Node.js version (e.g., `24.11.0`) - -**Note:** The `--push` flag requires you to be logged in to GitHub Container Registry: -```bash -echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin -``` - -## 🚀 Usage +## Usage ### In Your Project's devcontainer.json @@ -88,7 +58,7 @@ to: } ``` -## 🔧 Included VS Code Extensions +## Included VS Code Extensions The development container comes pre-configured with the following extensions: @@ -106,31 +76,7 @@ The development container comes pre-configured with the following extensions: - **Language Hugo VSCode** (`budparr.language-hugo-vscode`) - Hugo language support - **Hugo Shortcode Syntax** (`kaellarkin.hugo-shortcode-syntax`) - Syntax highlighting for Hugo shortcodes -## 📋 Version Information - -The image uses specific versions of Hugo, Bun, and Node.js defined as build arguments: - -- **Hugo Version**: Specified via `HUGO_VERSION` build arg (default: `0.155.1`) -- **Bun Version**: Specified via `BUN_VERSION` build arg (default: `1.3.8`) -- **Node.js Version**: Specified via `NODE_VERSION` build arg (default: `24.13.0`) -- **Base Image**: `oven/bun:${BUN_VERSION}-alpine` - -### Updating Versions - -To build with different versions, use build arguments: - -```bash -docker buildx build \ - --build-arg HUGO_VERSION=0.156.0 \ - --build-arg BUN_VERSION=1.4.0 \ - --build-arg NODE_VERSION=24.12.0 \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io//devcontainers/hugo-bun-node:hugo0.156.0-bun1.4.0-node24.12.0-alpine \ - --push \ - .devcontainer -``` - -## ⚠️ Important Notes +## Important Notes ### Node.js on Alpine Linux @@ -158,7 +104,7 @@ Hugo Extended binary requires glibc, but Alpine Linux uses musl. The `gcompat` p RUN apk add --no-cache gcompat ``` -## 🛠️ Development Workflow +## Development Workflow ### Starting the Dev Container @@ -209,11 +155,70 @@ wrangler dev wrangler deploy ``` -## 📄 License +## Build Args + +The image uses specific versions of Hugo, Bun, and Node.js defined as build arguments: + +- **Hugo Version**: Specified via `HUGO_VERSION` build arg (default: `0.155.1`) +- **Bun Version**: Specified via `BUN_VERSION` build arg (default: `1.3.8`) +- **Node.js Version**: Specified via `NODE_VERSION` build arg (default: `24.13.0`) +- **Base Image**: `oven/bun:${BUN_VERSION}-alpine` + +### Updating Versions + +To build with different versions, use build arguments: + +```bash +docker buildx build \ + --build-arg HUGO_VERSION=0.156.0 \ + --build-arg BUN_VERSION=1.4.0 \ + --build-arg NODE_VERSION=24.12.0 \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io//devcontainers/hugo-bun-node:hugo0.156.0-bun1.4.0-node24.12.0-alpine \ + --push \ + .devcontainer +``` + +## Building the Image + +To build this multiplatform image, use Docker Buildx: + +```bash +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io//devcontainers/hugo-bun-node:hugo-bun-node-alpine \ + -t ghcr.io//devcontainers/hugo-bun-node:latest \ + --push \ + .devcontainer +``` + +### Example with Specific Versions + +```bash +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io/myusername/devcontainers/hugo-bun-node:hugo0.155.1-bun1.3.8-node24.13.0-alpine \ + -t ghcr.io/myusername/devcontainers/hugo-bun-node:latest \ + --push \ + .devcontainer +``` + +**Replace:** +- `` with your GitHub username or organization +- `` with the Hugo version (e.g., `0.155.1`) +- `` with the Bun version (e.g., `1.3.8`) +- `` with the Node.js version (e.g., `24.11.0`) + +**Note:** The `--push` flag requires you to be logged in to GitHub Container Registry: +```bash +echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin +``` + +## License This image configuration is part of the devcontainers repository. -## 🤝 Contributing +## Contributing Contributions are welcome! Please ensure: 1. Version numbers are clearly documented diff --git a/hugo-bun/README.md b/hugo-bun/README.md index 47459ff..5739d8a 100644 --- a/hugo-bun/README.md +++ b/hugo-bun/README.md @@ -2,7 +2,7 @@ A multiplatform development container image combining Hugo Extended and Bun runtime, optimized for modern static site development workflows. -## 🌟 Features +## Features - **Hugo Extended** - Full-featured static site generator with extended capabilities - **Bun Runtime** - Fast JavaScript runtime, bundler, and package manager @@ -11,47 +11,18 @@ A multiplatform development container image combining Hugo Extended and Bun runt - **Zsh** - Modern shell with better VS Code integration - **Alpine Linux** - Lightweight base image with glibc compatibility (gcompat) -## 🏗️ Multiplatform Support +## Multi-platform Support This image is built for multiple architectures: - `linux/amd64` (x86_64) - `linux/arm64` (ARM64/Apple Silicon) -## 📦 Building the Image +## Image Tags -To build this multiplatform image, use Docker Buildx: - -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io//devcontainers/hugo-bun:hugo-bun-alpine \ - -t ghcr.io//devcontainers/hugo-bun:latest \ - --push \ - .devcontainer -``` - -### Example with specific versions: - -```bash -docker buildx build \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io/myusername/devcontainers/hugo-bun:hugo0.152.2-bun1.3.2-alpine \ - -t ghcr.io/myusername/devcontainers/hugo-bun:latest \ - --push \ - .devcontainer -``` - -**Replace:** -- `` with your GitHub username or organization -- `` with the Hugo version (e.g., `0.152.2`) -- `` with the Bun version (e.g., `1.3.2`) - -**Note:** The `--push` flag requires you to be logged in to GitHub Container Registry: -```bash -echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin -``` +- `latest` — most recent build +- `hugo-bun-alpine` — version-specific tag (e.g., `hugo0.152.2-bun1.3.2-alpine`) -## 🚀 Usage +## Usage ### In Your Project's devcontainer.json @@ -86,7 +57,7 @@ to: } ``` -## 🔧 Included VS Code Extensions +## Included VS Code Extensions The development container comes pre-configured with the following extensions: @@ -104,29 +75,7 @@ The development container comes pre-configured with the following extensions: - **Language Hugo VSCode** (`budparr.language-hugo-vscode`) - Hugo language support - **Hugo Shortcode Syntax** (`kaellarkin.hugo-shortcode-syntax`) - Syntax highlighting for Hugo shortcodes -## 📋 Version Information - -The image uses specific versions of Hugo and Bun defined as build arguments: - -- **Hugo Version**: Specified via `HUGO_VERSION` build arg (default: `0.152.2`) -- **Bun Version**: Specified via `BUN_VERSION` build arg (default: `1.3.2`) -- **Base Image**: `oven/bun:${BUN_VERSION}-alpine` - -### Updating Versions - -To build with different versions, use build arguments: - -```bash -docker buildx build \ - --build-arg HUGO_VERSION=0.153.0 \ - --build-arg BUN_VERSION=1.4.0 \ - --platform linux/amd64,linux/arm64 \ - -t ghcr.io//devcontainers/hugo-bun:hugo0.153.0-bun1.4.0-alpine \ - --push \ - .devcontainer -``` - -## ⚠️ Important Notes +## Important Notes ### GitHub Actions Integration @@ -150,7 +99,7 @@ Hugo Extended binary requires glibc, but Alpine Linux uses musl. The `gcompat` p RUN apk add --no-cache gcompat ``` -## 🛠️ Development Workflow +## Development Workflow ### Starting the Dev Container @@ -184,11 +133,67 @@ bun run build bun run index.ts ``` -## 📄 License +## Build Args + +The image uses specific versions of Hugo and Bun defined as build arguments: + +- **Hugo Version**: Specified via `HUGO_VERSION` build arg (default: `0.152.2`) +- **Bun Version**: Specified via `BUN_VERSION` build arg (default: `1.3.2`) +- **Base Image**: `oven/bun:${BUN_VERSION}-alpine` + +### Updating Versions + +To build with different versions, use build arguments: + +```bash +docker buildx build \ + --build-arg HUGO_VERSION=0.153.0 \ + --build-arg BUN_VERSION=1.4.0 \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io//devcontainers/hugo-bun:hugo0.153.0-bun1.4.0-alpine \ + --push \ + .devcontainer +``` + +## Building the Image + +To build this multiplatform image, use Docker Buildx: + +```bash +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io//devcontainers/hugo-bun:hugo-bun-alpine \ + -t ghcr.io//devcontainers/hugo-bun:latest \ + --push \ + .devcontainer +``` + +### Example with Specific Versions + +```bash +docker buildx build \ + --platform linux/amd64,linux/arm64 \ + -t ghcr.io/myusername/devcontainers/hugo-bun:hugo0.152.2-bun1.3.2-alpine \ + -t ghcr.io/myusername/devcontainers/hugo-bun:latest \ + --push \ + .devcontainer +``` + +**Replace:** +- `` with your GitHub username or organization +- `` with the Hugo version (e.g., `0.152.2`) +- `` with the Bun version (e.g., `1.3.2`) + +**Note:** The `--push` flag requires you to be logged in to GitHub Container Registry: +```bash +echo $GITHUB_TOKEN | docker login ghcr.io -u --password-stdin +``` + +## License This image configuration is part of the devcontainers repository. -## 🤝 Contributing +## Contributing Contributions are welcome! Please ensure: 1. Version numbers are clearly documented diff --git a/ralphex-fe/README.md b/ralphex-fe/README.md index 588b702..7f08c7b 100644 --- a/ralphex-fe/README.md +++ b/ralphex-fe/README.md @@ -44,7 +44,7 @@ docker run --rm \ ghcr.io/gatezh/devcontainers/ralphex-fe:latest ``` -## Building Locally +## Building the Image ```bash docker build -t ralphex-fe:test ralphex-fe/ @@ -60,9 +60,15 @@ docker build -t ralphex-fe:test ralphex-fe/ | `SKIP_HOME_CHOWN` | unset | Set to `1` to skip chown of `/home/app` at startup | | `INIT_QUIET` | unset | Set to `1` to suppress `init.sh` log output | +## Multi-platform Support + +This image is built for multiple architectures: +- `linux/amd64` (x86_64) +- `linux/arm64` (ARM64/Apple Silicon) + ## Image Tags -- `latest` — always included +- `latest` — most recent build - `bun{VERSION}-hugo{VERSION}` — version-specific tag (e.g., `bun1.3.9-hugo0.156.0`) Note: this image deviates from the standalone convention of a single primary version tag because it bundles multiple independently-versioned tools.