Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
2a2a16f
feat: add Docker-in-Docker Earthfile, README, and versions configuration
Mar 13, 2026
0d483b8
fix: move BUILDX_VERSION argument to docker-base section in Earthfile
Mar 13, 2026
da4dd58
feat: update README with Docker build commands and links
Mar 13, 2026
f018654
feat: add Node container image
Mar 19, 2026
612a6f7
feat: add PHP container image
Mar 19, 2026
3a1124f
fix: update PHP base version references in Earthfile, README, and ver…
Mar 19, 2026
d127b29
fix: update Node image references to remove '-alpine' suffix
Mar 19, 2026
57220c7
fix: improve buildx installation script for architecture support
Mar 23, 2026
0d662d2
fix: streamline buildx installation script for architecture handling
Mar 23, 2026
aa9da3d
fix: correct checksum grep pattern and update build-multiplatform com…
Mar 23, 2026
2727373
fix: update checksum verification method in buildx installation
Mar 23, 2026
c3e9133
fix: update build-multiplatform command to use common+BUILD_MULTIPLAT…
Mar 23, 2026
5d1610d
Merge branch 'docker-27-dind' into node-22-alpine
Mar 23, 2026
d22ddee
fix: update watch pattern in versions.yaml for dynamic version matching
Mar 23, 2026
66716f2
Merge branch 'node-22-alpine' into php-8-1-fpm
Mar 23, 2026
6b0fc23
fix: update watch pattern in versions.yaml for broader version matching
Mar 23, 2026
facb1bd
fix: add 22-slim version to README and versions.yaml
Mar 23, 2026
6bbec66
feat: add Earthfile and versions.yaml for Python container with IAC t…
Mar 23, 2026
b7c3f60
feat: add Earthfile, README.md, and versions.yaml for Python containe…
Mar 23, 2026
1a86735
feat: update README.md and versions.yaml to include Python 3.13-slim-…
Mar 23, 2026
e84b217
feat: add Node container image (#12)
hailatGH Mar 23, 2026
8c967f1
feat: add PHP container image (#13)
hailatGH Mar 23, 2026
a95b8df
Merge branch 'main' of github.com:expnt/containers into docker-27-dind
Mar 23, 2026
1131018
Merge branch 'node-22-alpine' into docker-27-dind
Mar 23, 2026
1111dca
Merge branch 'php-8-1-fpm' into docker-27-dind
Mar 23, 2026
431f898
fix: add 22-slim version to README and versions.yaml (#14)
hailatGH Mar 23, 2026
7e97a66
Merge branch 'node-22-alpine' into docker-27-dind
Mar 23, 2026
fcdf218
Merge branch '3-13-slim-bullseye' into docker-27-dind
Mar 23, 2026
fd8abdb
Merge branch 'node-22-slim' into docker-27-dind
Mar 23, 2026
3849f5a
fix: update container names and Earthfile commands
Mar 24, 2026
fd174c6
fix: update base version to 27-dind in README and versions.yaml
Mar 24, 2026
c4c2dd9
fix: correct BASE_VERSION usage in docker-base and add space in php E…
Mar 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@

- [docker](./containers/docker/README.md) - `ghcr.io/expnt/containers/docker`
- [minio](./containers/minio/README.md) - `ghcr.io/expnt/containers/minio`
- [python](./containers/python/README.md) - `ghcr.io/expnt/containers/xep-python-iac`
- [node](./containers/node/README.md) - `ghcr.io/expnt/containers/node`
- [xep-python-iac](./containers/xep-python-iac/README.md) - `ghcr.io/expnt/containers/xep-python-iac`
- [redis](./containers/redis/README.md) - `ghcr.io/expnt/containers/redis`
- [supabase](./containers/supabase/README.md) - `ghcr.io/expnt/containers/supabase`
- [timescaledb](./containers/timescaledb/README.md) - `ghcr.io/expnt/containers/timescaledb`
Expand Down Expand Up @@ -34,6 +35,7 @@ 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
Expand Down
2 changes: 1 addition & 1 deletion containers/docker/Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ ARG --global GITHUB_REPOSITORY_OWNER

docker-base:
ARG BUILDX_VERSION=v0.20.1
FROM docker.io/docker:${BASE_VERSION}-dind
FROM docker.io/docker:${BASE_VERSION}
RUN apk add --no-cache \
parallel \
kubectl \
Expand Down
6 changes: 3 additions & 3 deletions containers/docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ Aliased container image for Docker-in-Docker (dind) with buildx and additional t

<!-- VERSIONS_START -->

| Tag | Base Version |
| ---- | ------------ |
| `27` | 27 |
| Tag | Base Version |
| --------- | ------------ |
| `27-dind` | 27-dind |

<!-- VERSIONS_END -->

Expand Down
4 changes: 2 additions & 2 deletions containers/docker/versions.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
image_name: docker
tag_pattern: "{base_version}"
versions:
- base_version: "27"
- base_version: "27-dind"
watch:
- pattern: ^\d+$
- pattern: ^\d+-dind$
source: docker.io/library/docker
target: base_version
type: docker
22 changes: 22 additions & 0 deletions containers/node/Earthfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
VERSION 0.8
IMPORT .. AS common

ARG --global BASE_VERSION
ARG --global TAG
ARG --global GITHUB_REPOSITORY_OWNER

node-base:
FROM docker.io/library/node:${BASE_VERSION}
DO common+ADD_LABELS

validate:
FROM +node-base
RUN --no-cache test -n "$BASE_VERSION" || (echo "BASE_VERSION is required" && exit 1)

build:
BUILD +validate
FROM +node-base
DO common+SAVE_IMAGE --IMAGE_NAME=node --TAG=${TAG} --GITHUB_REPOSITORY_OWNER=${GITHUB_REPOSITORY_OWNER}

build-multiplatform:
DO --pass-args common+BUILD_MULTIPLATFORM --TARGET=./node+build
20 changes: 20 additions & 0 deletions containers/node/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# node

Aliased container image for Node.js.

## Available Versions

<!-- VERSIONS_START -->

| Tag | Base Version |
| ----------- | ------------ |
| `22-alpine` | 22-alpine |
| `22-slim` | 22-slim |

<!-- VERSIONS_END -->

## Usage

```bash
docker pull ghcr.io/expnt/containers/node:<tag>
```
14 changes: 14 additions & 0 deletions containers/node/versions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
image_name: node
tag_pattern: "{base_version}"
versions:
- base_version: "22-alpine"
- base_version: "22-slim"
watch:
- pattern: ^(\d+)-alpine$
source: docker.io/library/node
target: base_version
type: docker
- pattern: ^(\d+)-slim$
source: docker.io/library/node
target: base_version
type: docker
22 changes: 22 additions & 0 deletions containers/php/Earthfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
VERSION 0.8
IMPORT .. AS common

ARG --global BASE_VERSION
ARG --global TAG
ARG --global GITHUB_REPOSITORY_OWNER

php-base:
FROM docker.io/library/php:${BASE_VERSION}
DO common+ADD_LABELS

validate:
FROM +php-base
RUN --no-cache test -n "$BASE_VERSION" || (echo "BASE_VERSION is required" && exit 1)

build:
BUILD +validate
FROM +php-base
DO common+SAVE_IMAGE --IMAGE_NAME=php --TAG=${TAG} --GITHUB_REPOSITORY_OWNER=${GITHUB_REPOSITORY_OWNER}

build-multiplatform:
DO --pass-args common+BUILD_MULTIPLATFORM --TARGET=./php+build
19 changes: 19 additions & 0 deletions containers/php/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# php

Aliased container image for PHP.

## Available Versions

<!-- VERSIONS_START -->

| Tag | Base Version |
| ----------- | ------------ |
| `8.1-fpm` | 8.1-fpm |

<!-- VERSIONS_END -->

## Usage

```bash
docker pull ghcr.io/expnt/containers/php:<tag>
```
9 changes: 9 additions & 0 deletions containers/php/versions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
image_name: php
tag_pattern: "{base_version}"
versions:
- base_version: "8.1-fpm"
watch:
- pattern: ^[\d.]+-fpm$
source: docker.io/library/php
target: base_version
type: docker
41 changes: 3 additions & 38 deletions containers/python/Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,9 @@ IMPORT .. AS common
ARG --global BASE_VERSION
ARG --global TAG
ARG --global GITHUB_REPOSITORY_OWNER
ARG --global POETRY_VERSION
ARG --global PRECOMMIT_VERSION
ARG --global OPENTOFU_VERSION
ARG --global TFLINT_VERSION

python-base:
FROM python:${BASE_VERSION}-bookworm
FROM docker.io/library/python:${BASE_VERSION}
DO common+ADD_LABELS

validate:
Expand All @@ -20,38 +16,7 @@ validate:
build:
BUILD +validate
FROM +python-base
USER root

RUN set -eux && \
apt-get update && \
apt-get install -y --no-install-recommends \
curl \
ca-certificates \
gnupg \
lsb-release \
unzip && \
apt-get install -y --no-install-recommends pipx && \
pipx install poetry==${POETRY_VERSION} && \
pipx install pre-commit==${PRECOMMIT_VERSION} && \
ARCH=$(dpkg --print-architecture) && \
curl --http1.1 -fsSL -o /tmp/opentofu.deb \
https://github.com/opentofu/opentofu/releases/download/v${OPENTOFU_VERSION}/tofu_${OPENTOFU_VERSION}_${ARCH}.deb && \
dpkg -i /tmp/opentofu.deb && \
curl --http1.1 -fsSL -o /tmp/tflint.zip \
https://github.com/terraform-linters/tflint/releases/download/v${TFLINT_VERSION}/tflint_linux_${ARCH}.zip && \
unzip /tmp/tflint.zip -d /usr/local/bin && \
chmod +x /usr/local/bin/tflint && \
apt-get purge -y curl gnupg lsb-release unzip && \
apt-get clean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/apt/* \
/usr/share/doc/* /usr/share/man/* /usr/share/info/* \
/usr/share/i18n/locales/* /usr/share/locale/* && \
(find /usr/share/i18n -type f ! -name "POSIX" -delete || true)

ENV PATH="/root/.local/bin:$PATH"

DO common+SAVE_IMAGE --IMAGE_NAME=xep-python-iac --TAG=${TAG} --GITHUB_REPOSITORY_OWNER=${GITHUB_REPOSITORY_OWNER}
DO common+SAVE_IMAGE --IMAGE_NAME=python --TAG=${TAG} --GITHUB_REPOSITORY_OWNER=${GITHUB_REPOSITORY_OWNER}

build-multiplatform:
DO --pass-args common+BUILD_MULTIPLATFORM --TARGET=./python+build
DO --pass-args common+BUILD_MULTIPLATFORM --TARGET=./python+build
11 changes: 6 additions & 5 deletions containers/python/README.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# python

Python container with IAC tooling (Poetry, pre-commit, OpenTofu, TFLint).
Aliased container image for Python.

## Available Versions

<!-- VERSIONS_START -->

| Tag | Base Version |
| --------------- | ------------ |
| `3.12-bookworm` | 3.12 |
| Tag | Base Version |
| -------------------- | ------------------ |
| `3.12` | 3.12 |
| `3.13-slim-bullseye` | 3.13-slim-bullseye |

<!-- VERSIONS_END -->

## Usage

```bash
docker pull ghcr.io/expnt/containers/xep-python-iac:<tag>
docker pull ghcr.io/expnt/containers/python:<tag>
```
31 changes: 8 additions & 23 deletions containers/python/versions.yaml
Original file line number Diff line number Diff line change
@@ -1,29 +1,14 @@
image_name: xep-python-iac
tag_pattern: "{base_version}-bookworm"
image_name: python
tag_pattern: "{base_version}"
versions:
- base_version: "3.12"
opentofu_version: 1.8.8
poetry_version: 1.8.5
precommit_version: 4.0.1
tflint_version: 0.54.0
- base_version: "3.13-slim-bullseye"
watch:
- pattern: ^3\.(1[2-9]|[2-9]\d)-bookworm$
- pattern: ^\d+\.\d+$
source: docker.io/library/python
target: base_version
type: docker
- pattern: ^\d+\.\d+-slim-bullseye$
source: docker.io/library/python
target: base_version
type: docker
- pattern: ^\d+\.\d+\.\d+$
source: python-poetry/poetry
target: poetry_version
type: github
- pattern: ^v\d+\.\d+\.\d+$
source: pre-commit/pre-commit
target: precommit_version
type: github
- pattern: ^v\d+\.\d+\.\d+$
source: opentofu/opentofu
target: opentofu_version
type: github
- pattern: ^v\d+\.\d+\.\d+$
source: terraform-linters/tflint
target: tflint_version
type: github
57 changes: 57 additions & 0 deletions containers/xep-python-iac/Earthfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
VERSION 0.8
IMPORT .. AS common

ARG --global BASE_VERSION
ARG --global TAG
ARG --global GITHUB_REPOSITORY_OWNER
ARG --global POETRY_VERSION
ARG --global PRECOMMIT_VERSION
ARG --global OPENTOFU_VERSION
ARG --global TFLINT_VERSION

python-base:
FROM python:${BASE_VERSION}-bookworm
DO common+ADD_LABELS

validate:
FROM +python-base
RUN --no-cache test -n "$BASE_VERSION" || (echo "BASE_VERSION is required" && exit 1)

build:
BUILD +validate
FROM +python-base
USER root

RUN set -eux && \
apt-get update && \
apt-get install -y --no-install-recommends \
curl \
ca-certificates \
gnupg \
lsb-release \
unzip && \
apt-get install -y --no-install-recommends pipx && \
pipx install poetry==${POETRY_VERSION} && \
pipx install pre-commit==${PRECOMMIT_VERSION} && \
ARCH=$(dpkg --print-architecture) && \
curl --http1.1 -fsSL -o /tmp/opentofu.deb \
https://github.com/opentofu/opentofu/releases/download/v${OPENTOFU_VERSION}/tofu_${OPENTOFU_VERSION}_${ARCH}.deb && \
dpkg -i /tmp/opentofu.deb && \
curl --http1.1 -fsSL -o /tmp/tflint.zip \
https://github.com/terraform-linters/tflint/releases/download/v${TFLINT_VERSION}/tflint_linux_${ARCH}.zip && \
unzip /tmp/tflint.zip -d /usr/local/bin && \
chmod +x /usr/local/bin/tflint && \
apt-get purge -y curl gnupg lsb-release unzip && \
apt-get clean && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/cache/apt/* \
/usr/share/doc/* /usr/share/man/* /usr/share/info/* \
/usr/share/i18n/locales/* /usr/share/locale/* && \
(find /usr/share/i18n -type f ! -name "POSIX" -delete || true)

ENV PATH="/root/.local/bin:$PATH"

DO common+SAVE_IMAGE --IMAGE_NAME=xep-python-iac --TAG=${TAG} --GITHUB_REPOSITORY_OWNER=${GITHUB_REPOSITORY_OWNER}

build-multiplatform:
DO --pass-args common+BUILD_MULTIPLATFORM --TARGET=./xep-python-iac+build
19 changes: 19 additions & 0 deletions containers/xep-python-iac/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# XEP-Python-IaC

Python container with IAC tooling (Poetry, pre-commit, OpenTofu, TFLint).

## Available Versions

<!-- VERSIONS_START -->

| Tag | Base Version |
| --------------- | ------------ |
| `3.12-bookworm` | 3.12 |

<!-- VERSIONS_END -->

## Usage

```bash
docker pull ghcr.io/expnt/containers/xep-python-iac:<tag>
```
29 changes: 29 additions & 0 deletions containers/xep-python-iac/versions.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
image_name: xep-python-iac
tag_pattern: "{base_version}-bookworm"
versions:
- base_version: "3.12"
opentofu_version: 1.8.8
poetry_version: 1.8.5
precommit_version: 4.0.1
tflint_version: 0.54.0
watch:
- pattern: ^3\.(1[2-9]|[2-9]\d)-bookworm$
source: docker.io/library/python
target: base_version
type: docker
- pattern: ^\d+\.\d+\.\d+$
source: python-poetry/poetry
target: poetry_version
type: github
- pattern: ^v\d+\.\d+\.\d+$
source: pre-commit/pre-commit
target: precommit_version
type: github
- pattern: ^v\d+\.\d+\.\d+$
source: opentofu/opentofu
target: opentofu_version
type: github
- pattern: ^v\d+\.\d+\.\d+$
source: terraform-linters/tflint
target: tflint_version
type: github
Loading