Skip to content

expnt/containers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Public containers

Container Images

  • buildkit - ghcr.io/expnt/containers/buildkit
  • deno - ghcr.io/expnt/containers/deno
  • docker - ghcr.io/expnt/containers/docker
  • minio - ghcr.io/expnt/containers/minio
  • node - ghcr.io/expnt/containers/node
  • odoo - ghcr.io/expnt/containers/odoo
  • php - ghcr.io/expnt/containers/php
  • python - ghcr.io/expnt/containers/python
  • qemu-user-static - ghcr.io/expnt/containers/qemu-user-static
  • redis - ghcr.io/expnt/containers/redis
  • supabase - ghcr.io/expnt/containers/supabase
  • timescaledb - ghcr.io/expnt/containers/timescaledb
  • xep-python-iac - ghcr.io/expnt/containers/xep-python-iac

Development

Prerequisites

  • Earthly
  • Docker
  • Python 3.12+ and Poetry

Building Locally

# Install dependencies
poetry install

# Build specific container (all versions, saves to local Docker)
poetry run containers build docker -o
poetry run containers build timescaledb -o
poetry run containers build supabase -o
poetry run containers build minio -o
poetry run containers build redis -o
poetry run containers build python -o
poetry run containers build node -o

# Build specific version only
poetry run containers build docker -o --version 27
poetry run containers build minio -o --version 2022.2.7

# Build all containers (saves to local Docker)
poetry run containers build --all -o

# Build with multi-platform support (linux/amd64 and linux/arm64)
poetry run containers build docker -o -m
poetry run containers build minio -o -m
poetry run containers build redis -o -m
poetry run containers build timescaledb -o -m

# For more options
poetry run containers build --help

Local Multi-Platform Testing

To test multi-platform builds locally, you need QEMU installed:

macOS/Windows (Docker Desktop):

  • QEMU is included, no setup needed
  • For Apple Silicon: Enable "Use Rosetta for x86/amd64 emulation" in Docker Desktop settings

Linux:

sudo apt-get install qemu-system binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker stop earthly-buildkitd || true

Then you can test:

# Test both platforms
poetry run containers build minio -o -m
poetry run containers build redis -o -m

Pushing to Registry

Images are automatically pushed to GitHub Container Registry (GHCR) by CI when you merge to the main branch.

Local builds only save images to your local Docker daemon for testing. To push images:

  1. Make your changes and commit them
  2. Push to the repository
  3. CI will automatically build and push multi-platform images when changes are merged to main

The CI workflow:

  • Builds for both linux/amd64 and linux/arm64 platforms
  • Creates multi-manifest images
  • Pushes to ghcr.io/[REPO_OWNER]/[container]:[tag]

Note: If you need to push manually (e.g., for testing CI), you can trigger the workflow or use Earthly directly with proper authentication.

Updating Versions

Edit the corresponding versions.yaml file in each container directory. The manifest supports multiple versions per container.

Regenerating READMEs

poetry run containers generate-readme

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors