Skip to content

Add Nim images.#19453

Open
moigagoo wants to merge 4 commits intodocker-library:masterfrom
moigagoo:feature/add_nim
Open

Add Nim images.#19453
moigagoo wants to merge 4 commits intodocker-library:masterfrom
moigagoo:feature/add_nim

Conversation

@moigagoo
Copy link

No description provided.

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@github-actions
Copy link

Diff for 7fe9e84:
diff --git a/_bashbrew-arches b/_bashbrew-arches
index 8b13789..45d7292 100644
--- a/_bashbrew-arches
+++ b/_bashbrew-arches
@@ -1 +1,3 @@
-
+amd64
+arm32v7
+arm64v8
diff --git a/_bashbrew-cat b/_bashbrew-cat
index bdfae4a..b8b58bc 100644
--- a/_bashbrew-cat
+++ b/_bashbrew-cat
@@ -1 +1,371 @@
-Maintainers: New Image! :D (@docker-library-bot)
+Maintainers: Constantine Molchanov <moigagoo@duck.com> (@moigagoo), Akito <the@akito.ooo> (@theAkito)
+GitRepo: https://github.com/nim-lang/docker-images.git
+GitCommit: fba3ff923ee8f4d96b1275a4ad4145527e9312c6
+
+Tags: 1.6.0
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.0/regular/ubuntu
+
+Tags: 1.6.0-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.0/regular/alpine
+
+Tags: 1.6.0-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.0/slim/alpine
+
+Tags: 1.6.0-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.0/slim/ubuntu
+
+Tags: 1.6.2
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.2/regular/ubuntu
+
+Tags: 1.6.2-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.2/regular/alpine
+
+Tags: 1.6.2-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.2/slim/alpine
+
+Tags: 1.6.2-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.2/slim/ubuntu
+
+Tags: 1.6.4
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.4/regular/ubuntu
+
+Tags: 1.6.4-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.4/regular/alpine
+
+Tags: 1.6.4-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.4/slim/alpine
+
+Tags: 1.6.4-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.4/slim/ubuntu
+
+Tags: 1.6.6
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.6/regular/ubuntu
+
+Tags: 1.6.6-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.6/regular/alpine
+
+Tags: 1.6.6-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.6/slim/alpine
+
+Tags: 1.6.6-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.6/slim/ubuntu
+
+Tags: 1.6.8
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.8/regular/ubuntu
+
+Tags: 1.6.8-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.8/regular/alpine
+
+Tags: 1.6.8-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.8/slim/alpine
+
+Tags: 1.6.8-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.8/slim/ubuntu
+
+Tags: 1.6.10
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.10/regular/ubuntu
+
+Tags: 1.6.10-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.10/regular/alpine
+
+Tags: 1.6.10-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.10/slim/alpine
+
+Tags: 1.6.10-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.10/slim/ubuntu
+
+Tags: 1.6.12
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.12/regular/ubuntu
+
+Tags: 1.6.12-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.12/regular/alpine
+
+Tags: 1.6.12-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.12/slim/alpine
+
+Tags: 1.6.12-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.12/slim/ubuntu
+
+Tags: 1.6.14
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.14/regular/ubuntu
+
+Tags: 1.6.14-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.14/regular/alpine
+
+Tags: 1.6.14-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.14/slim/alpine
+
+Tags: 1.6.14-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.14/slim/ubuntu
+
+Tags: 1.6.16
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.16/regular/ubuntu
+
+Tags: 1.6.16-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.16/regular/alpine
+
+Tags: 1.6.16-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.16/slim/alpine
+
+Tags: 1.6.16-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.16/slim/ubuntu
+
+Tags: 1.6.18
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.18/regular/ubuntu
+
+Tags: 1.6.18-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.18/regular/alpine
+
+Tags: 1.6.18-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.18/slim/alpine
+
+Tags: 1.6.18-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.18/slim/ubuntu
+
+Tags: 1.6.20, 1, 1.6
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.20/regular/ubuntu
+
+Tags: 1.6.20-alpine, 1-alpine, 1.6-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.20/regular/alpine
+
+Tags: 1.6.20-alpine-slim, 1-alpine-slim, 1.6-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.20/slim/alpine
+
+Tags: 1.6.20-slim, 1-slim, 1.6-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/1.6.20/slim/ubuntu
+
+Tags: 2.0.0
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.0/regular/ubuntu
+
+Tags: 2.0.0-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.0/regular/alpine
+
+Tags: 2.0.0-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.0/slim/alpine
+
+Tags: 2.0.0-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.0/slim/ubuntu
+
+Tags: 2.0.2
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.2/regular/ubuntu
+
+Tags: 2.0.2-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.2/regular/alpine
+
+Tags: 2.0.2-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.2/slim/alpine
+
+Tags: 2.0.2-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.2/slim/ubuntu
+
+Tags: 2.0.4
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.4/regular/ubuntu
+
+Tags: 2.0.4-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.4/regular/alpine
+
+Tags: 2.0.4-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.4/slim/alpine
+
+Tags: 2.0.4-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.4/slim/ubuntu
+
+Tags: 2.0.6
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.6/regular/ubuntu
+
+Tags: 2.0.6-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.6/regular/alpine
+
+Tags: 2.0.6-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.6/slim/alpine
+
+Tags: 2.0.6-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.6/slim/ubuntu
+
+Tags: 2.0.8
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.8/regular/ubuntu
+
+Tags: 2.0.8-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.8/regular/alpine
+
+Tags: 2.0.8-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.8/slim/alpine
+
+Tags: 2.0.8-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.8/slim/ubuntu
+
+Tags: 2.0.10
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.10/regular/ubuntu
+
+Tags: 2.0.10-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.10/regular/alpine
+
+Tags: 2.0.10-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.10/slim/alpine
+
+Tags: 2.0.10-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.10/slim/ubuntu
+
+Tags: 2.0.12
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.12/regular/ubuntu
+
+Tags: 2.0.12-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.12/regular/alpine
+
+Tags: 2.0.12-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.12/slim/alpine
+
+Tags: 2.0.12-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.12/slim/ubuntu
+
+Tags: 2.0.14, 2.0
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.14/regular/ubuntu
+
+Tags: 2.0.14-alpine, 2.0-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.14/regular/alpine
+
+Tags: 2.0.14-alpine-slim, 2.0-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.14/slim/alpine
+
+Tags: 2.0.14-slim, 2.0-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.0.14/slim/ubuntu
+
+Tags: 2.2.0
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.0/regular/ubuntu
+
+Tags: 2.2.0-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.0/regular/alpine
+
+Tags: 2.2.0-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.0/slim/alpine
+
+Tags: 2.2.0-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.0/slim/ubuntu
+
+Tags: 2.2.2
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.2/regular/ubuntu
+
+Tags: 2.2.2-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.2/regular/alpine
+
+Tags: 2.2.2-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.2/slim/alpine
+
+Tags: 2.2.2-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.2/slim/ubuntu
+
+Tags: 2.2.4
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.4/regular/ubuntu
+
+Tags: 2.2.4-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.4/regular/alpine
+
+Tags: 2.2.4-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.4/slim/alpine
+
+Tags: 2.2.4-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.4/slim/ubuntu
+
+Tags: alpine, 2.2.6-alpine, 2.2-alpine, 2-alpine
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.6/regular/alpine
+
+Tags: alpine-slim, 2.2.6-alpine-slim, 2.2-alpine-slim, 2-alpine-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.6/slim/alpine
+
+Tags: latest, 2.2.6, 2.2, 2
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.6/regular/ubuntu
+
+Tags: slim, 2.2.6-slim, 2.2-slim, 2-slim
+Architectures: amd64, arm32v7, arm64v8
+Directory: Dockerfiles/2.2.6/slim/ubuntu
diff --git a/_bashbrew-list b/_bashbrew-list
index e69de29..551cecb 100644
--- a/_bashbrew-list
+++ b/_bashbrew-list
@@ -0,0 +1,116 @@
+nim:1
+nim:1-alpine
+nim:1-alpine-slim
+nim:1-slim
+nim:1.6
+nim:1.6-alpine
+nim:1.6-alpine-slim
+nim:1.6-slim
+nim:1.6.0
+nim:1.6.0-alpine
+nim:1.6.0-alpine-slim
+nim:1.6.0-slim
+nim:1.6.2
+nim:1.6.2-alpine
+nim:1.6.2-alpine-slim
+nim:1.6.2-slim
+nim:1.6.4
+nim:1.6.4-alpine
+nim:1.6.4-alpine-slim
+nim:1.6.4-slim
+nim:1.6.6
+nim:1.6.6-alpine
+nim:1.6.6-alpine-slim
+nim:1.6.6-slim
+nim:1.6.8
+nim:1.6.8-alpine
+nim:1.6.8-alpine-slim
+nim:1.6.8-slim
+nim:1.6.10
+nim:1.6.10-alpine
+nim:1.6.10-alpine-slim
+nim:1.6.10-slim
+nim:1.6.12
+nim:1.6.12-alpine
+nim:1.6.12-alpine-slim
+nim:1.6.12-slim
+nim:1.6.14
+nim:1.6.14-alpine
+nim:1.6.14-alpine-slim
+nim:1.6.14-slim
+nim:1.6.16
+nim:1.6.16-alpine
+nim:1.6.16-alpine-slim
+nim:1.6.16-slim
+nim:1.6.18
+nim:1.6.18-alpine
+nim:1.6.18-alpine-slim
+nim:1.6.18-slim
+nim:1.6.20
+nim:1.6.20-alpine
+nim:1.6.20-alpine-slim
+nim:1.6.20-slim
+nim:2
+nim:2-alpine
+nim:2-alpine-slim
+nim:2-slim
+nim:2.0
+nim:2.0-alpine
+nim:2.0-alpine-slim
+nim:2.0-slim
+nim:2.0.0
+nim:2.0.0-alpine
+nim:2.0.0-alpine-slim
+nim:2.0.0-slim
+nim:2.0.2
+nim:2.0.2-alpine
+nim:2.0.2-alpine-slim
+nim:2.0.2-slim
+nim:2.0.4
+nim:2.0.4-alpine
+nim:2.0.4-alpine-slim
+nim:2.0.4-slim
+nim:2.0.6
+nim:2.0.6-alpine
+nim:2.0.6-alpine-slim
+nim:2.0.6-slim
+nim:2.0.8
+nim:2.0.8-alpine
+nim:2.0.8-alpine-slim
+nim:2.0.8-slim
+nim:2.0.10
+nim:2.0.10-alpine
+nim:2.0.10-alpine-slim
+nim:2.0.10-slim
+nim:2.0.12
+nim:2.0.12-alpine
+nim:2.0.12-alpine-slim
+nim:2.0.12-slim
+nim:2.0.14
+nim:2.0.14-alpine
+nim:2.0.14-alpine-slim
+nim:2.0.14-slim
+nim:2.2
+nim:2.2-alpine
+nim:2.2-alpine-slim
+nim:2.2-slim
+nim:2.2.0
+nim:2.2.0-alpine
+nim:2.2.0-alpine-slim
+nim:2.2.0-slim
+nim:2.2.2
+nim:2.2.2-alpine
+nim:2.2.2-alpine-slim
+nim:2.2.2-slim
+nim:2.2.4
+nim:2.2.4-alpine
+nim:2.2.4-alpine-slim
+nim:2.2.4-slim
+nim:2.2.6
+nim:2.2.6-alpine
+nim:2.2.6-alpine-slim
+nim:2.2.6-slim
+nim:alpine
+nim:alpine-slim
+nim:latest
+nim:slim
diff --git a/_bashbrew-list-build-order b/_bashbrew-list-build-order
index e69de29..91bf838 100644
--- a/_bashbrew-list-build-order
+++ b/_bashbrew-list-build-order
@@ -0,0 +1,92 @@
+nim:1.6
+nim:1.6-alpine
+nim:1.6-alpine-slim
+nim:1.6-slim
+nim:1.6.0
+nim:1.6.0-alpine
+nim:1.6.0-alpine-slim
+nim:1.6.0-slim
+nim:1.6.2
+nim:1.6.2-alpine
+nim:1.6.2-alpine-slim
+nim:1.6.2-slim
+nim:1.6.4
+nim:1.6.4-alpine
+nim:1.6.4-alpine-slim
+nim:1.6.4-slim
+nim:1.6.6
+nim:1.6.6-alpine
+nim:1.6.6-alpine-slim
+nim:1.6.6-slim
+nim:1.6.8
+nim:1.6.8-alpine
+nim:1.6.8-alpine-slim
+nim:1.6.8-slim
+nim:1.6.10
+nim:1.6.10-alpine
+nim:1.6.10-alpine-slim
+nim:1.6.10-slim
+nim:1.6.12
+nim:1.6.12-alpine
+nim:1.6.12-alpine-slim
+nim:1.6.12-slim
+nim:1.6.14
+nim:1.6.14-alpine
+nim:1.6.14-alpine-slim
+nim:1.6.14-slim
+nim:1.6.16
+nim:1.6.16-alpine
+nim:1.6.16-alpine-slim
+nim:1.6.16-slim
+nim:1.6.18
+nim:1.6.18-alpine
+nim:1.6.18-alpine-slim
+nim:1.6.18-slim
+nim:2
+nim:2-alpine
+nim:2-alpine-slim
+nim:2-slim
+nim:2.0
+nim:2.0-alpine
+nim:2.0-alpine-slim
+nim:2.0-slim
+nim:2.0.0
+nim:2.0.0-alpine
+nim:2.0.0-alpine-slim
+nim:2.0.0-slim
+nim:2.0.2
+nim:2.0.2-alpine
+nim:2.0.2-alpine-slim
+nim:2.0.2-slim
+nim:2.0.4
+nim:2.0.4-alpine
+nim:2.0.4-alpine-slim
+nim:2.0.4-slim
+nim:2.0.6
+nim:2.0.6-alpine
+nim:2.0.6-alpine-slim
+nim:2.0.6-slim
+nim:2.0.8
+nim:2.0.8-alpine
+nim:2.0.8-alpine-slim
+nim:2.0.8-slim
+nim:2.0.10
+nim:2.0.10-alpine
+nim:2.0.10-alpine-slim
+nim:2.0.10-slim
+nim:2.0.12
+nim:2.0.12-alpine
+nim:2.0.12-alpine-slim
+nim:2.0.12-slim
+nim:2.2.0
+nim:2.2.0-alpine
+nim:2.2.0-alpine-slim
+nim:2.2.0-slim
+nim:2.2.2
+nim:2.2.2-alpine
+nim:2.2.2-alpine-slim
+nim:2.2.2-slim
+nim:2.2.4
+nim:2.2.4-alpine
+nim:2.2.4-alpine-slim
+nim:2.2.4-slim
diff --git a/nim_1.6-alpine-slim/Dockerfile b/nim_1.6-alpine-slim/Dockerfile
new file mode 100644
index 0000000..94602fb
--- /dev/null
+++ b/nim_1.6-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.20
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6-alpine/Dockerfile b/nim_1.6-alpine/Dockerfile
new file mode 100644
index 0000000..93cb327
--- /dev/null
+++ b/nim_1.6-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.20
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6-slim/Dockerfile b/nim_1.6-slim/Dockerfile
new file mode 100644
index 0000000..f4c265f
--- /dev/null
+++ b/nim_1.6-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.20
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.0-alpine-slim/Dockerfile b/nim_1.6.0-alpine-slim/Dockerfile
new file mode 100644
index 0000000..e35a3e7
--- /dev/null
+++ b/nim_1.6.0-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.0
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.0-alpine/Dockerfile b/nim_1.6.0-alpine/Dockerfile
new file mode 100644
index 0000000..5fbea75
--- /dev/null
+++ b/nim_1.6.0-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.0
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.0-slim/Dockerfile b/nim_1.6.0-slim/Dockerfile
new file mode 100644
index 0000000..4283059
--- /dev/null
+++ b/nim_1.6.0-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.0
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.0/Dockerfile b/nim_1.6.0/Dockerfile
new file mode 100644
index 0000000..1394221
--- /dev/null
+++ b/nim_1.6.0/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.0
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.10-alpine-slim/Dockerfile b/nim_1.6.10-alpine-slim/Dockerfile
new file mode 100644
index 0000000..376ac54
--- /dev/null
+++ b/nim_1.6.10-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.10
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.10-alpine/Dockerfile b/nim_1.6.10-alpine/Dockerfile
new file mode 100644
index 0000000..5ca968e
--- /dev/null
+++ b/nim_1.6.10-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.10
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.10-slim/Dockerfile b/nim_1.6.10-slim/Dockerfile
new file mode 100644
index 0000000..2126a0b
--- /dev/null
+++ b/nim_1.6.10-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.10
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.10/Dockerfile b/nim_1.6.10/Dockerfile
new file mode 100644
index 0000000..716ab9e
--- /dev/null
+++ b/nim_1.6.10/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.10
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.12-alpine-slim/Dockerfile b/nim_1.6.12-alpine-slim/Dockerfile
new file mode 100644
index 0000000..bb37419
--- /dev/null
+++ b/nim_1.6.12-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.12
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.12-alpine/Dockerfile b/nim_1.6.12-alpine/Dockerfile
new file mode 100644
index 0000000..343e017
--- /dev/null
+++ b/nim_1.6.12-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.12
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.12-slim/Dockerfile b/nim_1.6.12-slim/Dockerfile
new file mode 100644
index 0000000..85d7bd8
--- /dev/null
+++ b/nim_1.6.12-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.12
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.12/Dockerfile b/nim_1.6.12/Dockerfile
new file mode 100644
index 0000000..8778d65
--- /dev/null
+++ b/nim_1.6.12/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.12
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.14-alpine-slim/Dockerfile b/nim_1.6.14-alpine-slim/Dockerfile
new file mode 100644
index 0000000..0be39d8
--- /dev/null
+++ b/nim_1.6.14-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.14
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.14-alpine/Dockerfile b/nim_1.6.14-alpine/Dockerfile
new file mode 100644
index 0000000..d60fc92
--- /dev/null
+++ b/nim_1.6.14-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.14
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.14-slim/Dockerfile b/nim_1.6.14-slim/Dockerfile
new file mode 100644
index 0000000..5612756
--- /dev/null
+++ b/nim_1.6.14-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.14
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.14/Dockerfile b/nim_1.6.14/Dockerfile
new file mode 100644
index 0000000..e6bc70e
--- /dev/null
+++ b/nim_1.6.14/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.14
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.16-alpine-slim/Dockerfile b/nim_1.6.16-alpine-slim/Dockerfile
new file mode 100644
index 0000000..7299269
--- /dev/null
+++ b/nim_1.6.16-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.16
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.16-alpine/Dockerfile b/nim_1.6.16-alpine/Dockerfile
new file mode 100644
index 0000000..2117b6d
--- /dev/null
+++ b/nim_1.6.16-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.16
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.16-slim/Dockerfile b/nim_1.6.16-slim/Dockerfile
new file mode 100644
index 0000000..be71bd7
--- /dev/null
+++ b/nim_1.6.16-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.16
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.16/Dockerfile b/nim_1.6.16/Dockerfile
new file mode 100644
index 0000000..160c853
--- /dev/null
+++ b/nim_1.6.16/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.16
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.18-alpine-slim/Dockerfile b/nim_1.6.18-alpine-slim/Dockerfile
new file mode 100644
index 0000000..1b22233
--- /dev/null
+++ b/nim_1.6.18-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.18
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.18-alpine/Dockerfile b/nim_1.6.18-alpine/Dockerfile
new file mode 100644
index 0000000..f93ae63
--- /dev/null
+++ b/nim_1.6.18-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.18
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.18-slim/Dockerfile b/nim_1.6.18-slim/Dockerfile
new file mode 100644
index 0000000..ce0d322
--- /dev/null
+++ b/nim_1.6.18-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.18
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.18/Dockerfile b/nim_1.6.18/Dockerfile
new file mode 100644
index 0000000..2dc4eba
--- /dev/null
+++ b/nim_1.6.18/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.18
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.2-alpine-slim/Dockerfile b/nim_1.6.2-alpine-slim/Dockerfile
new file mode 100644
index 0000000..8880477
--- /dev/null
+++ b/nim_1.6.2-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.2
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.2-alpine/Dockerfile b/nim_1.6.2-alpine/Dockerfile
new file mode 100644
index 0000000..e072dc7
--- /dev/null
+++ b/nim_1.6.2-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.2
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.2-slim/Dockerfile b/nim_1.6.2-slim/Dockerfile
new file mode 100644
index 0000000..85606a4
--- /dev/null
+++ b/nim_1.6.2-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.2
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.2/Dockerfile b/nim_1.6.2/Dockerfile
new file mode 100644
index 0000000..e70ee84
--- /dev/null
+++ b/nim_1.6.2/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.2
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.4-alpine-slim/Dockerfile b/nim_1.6.4-alpine-slim/Dockerfile
new file mode 100644
index 0000000..8842ba3
--- /dev/null
+++ b/nim_1.6.4-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.4
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.4-alpine/Dockerfile b/nim_1.6.4-alpine/Dockerfile
new file mode 100644
index 0000000..78656cf
--- /dev/null
+++ b/nim_1.6.4-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.4
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.4-slim/Dockerfile b/nim_1.6.4-slim/Dockerfile
new file mode 100644
index 0000000..0885015
--- /dev/null
+++ b/nim_1.6.4-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.4
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.4/Dockerfile b/nim_1.6.4/Dockerfile
new file mode 100644
index 0000000..3735e64
--- /dev/null
+++ b/nim_1.6.4/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.4
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.6-alpine-slim/Dockerfile b/nim_1.6.6-alpine-slim/Dockerfile
new file mode 100644
index 0000000..86568c7
--- /dev/null
+++ b/nim_1.6.6-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.6
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.6-alpine/Dockerfile b/nim_1.6.6-alpine/Dockerfile
new file mode 100644
index 0000000..6a7ea03
--- /dev/null
+++ b/nim_1.6.6-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.6
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.6-slim/Dockerfile b/nim_1.6.6-slim/Dockerfile
new file mode 100644
index 0000000..b7aecf8
--- /dev/null
+++ b/nim_1.6.6-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.6
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.6/Dockerfile b/nim_1.6.6/Dockerfile
new file mode 100644
index 0000000..01bda76
--- /dev/null
+++ b/nim_1.6.6/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.6
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.8-alpine-slim/Dockerfile b/nim_1.6.8-alpine-slim/Dockerfile
new file mode 100644
index 0000000..8ec713d
--- /dev/null
+++ b/nim_1.6.8-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.8
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.8-alpine/Dockerfile b/nim_1.6.8-alpine/Dockerfile
new file mode 100644
index 0000000..6eb67cf
--- /dev/null
+++ b/nim_1.6.8-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=1.6.8
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.8-slim/Dockerfile b/nim_1.6.8-slim/Dockerfile
new file mode 100644
index 0000000..43c81b9
--- /dev/null
+++ b/nim_1.6.8-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.8
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6.8/Dockerfile b/nim_1.6.8/Dockerfile
new file mode 100644
index 0000000..c5c31d0
--- /dev/null
+++ b/nim_1.6.8/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.8
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_1.6/Dockerfile b/nim_1.6/Dockerfile
new file mode 100644
index 0000000..d746d2d
--- /dev/null
+++ b/nim_1.6/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=1.6.20
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2-alpine-slim/Dockerfile b/nim_2-alpine-slim/Dockerfile
new file mode 100644
index 0000000..db8572a
--- /dev/null
+++ b/nim_2-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.6
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2-alpine/Dockerfile b/nim_2-alpine/Dockerfile
new file mode 100644
index 0000000..312b791
--- /dev/null
+++ b/nim_2-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.6
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2-slim/Dockerfile b/nim_2-slim/Dockerfile
new file mode 100644
index 0000000..26681ff
--- /dev/null
+++ b/nim_2-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.6
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0-alpine-slim/Dockerfile b/nim_2.0-alpine-slim/Dockerfile
new file mode 100644
index 0000000..0bc9c9e
--- /dev/null
+++ b/nim_2.0-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.14
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0-alpine/Dockerfile b/nim_2.0-alpine/Dockerfile
new file mode 100644
index 0000000..20ed4bd
--- /dev/null
+++ b/nim_2.0-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.14
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0-slim/Dockerfile b/nim_2.0-slim/Dockerfile
new file mode 100644
index 0000000..8d107f2
--- /dev/null
+++ b/nim_2.0-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.14
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.0-alpine-slim/Dockerfile b/nim_2.0.0-alpine-slim/Dockerfile
new file mode 100644
index 0000000..b82c578
--- /dev/null
+++ b/nim_2.0.0-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.0
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.0-alpine/Dockerfile b/nim_2.0.0-alpine/Dockerfile
new file mode 100644
index 0000000..e95bc89
--- /dev/null
+++ b/nim_2.0.0-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.0
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.0-slim/Dockerfile b/nim_2.0.0-slim/Dockerfile
new file mode 100644
index 0000000..fc5047c
--- /dev/null
+++ b/nim_2.0.0-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.0
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.0/Dockerfile b/nim_2.0.0/Dockerfile
new file mode 100644
index 0000000..e23d7e2
--- /dev/null
+++ b/nim_2.0.0/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.0
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.10-alpine-slim/Dockerfile b/nim_2.0.10-alpine-slim/Dockerfile
new file mode 100644
index 0000000..623e857
--- /dev/null
+++ b/nim_2.0.10-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.10
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.10-alpine/Dockerfile b/nim_2.0.10-alpine/Dockerfile
new file mode 100644
index 0000000..ebc337a
--- /dev/null
+++ b/nim_2.0.10-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.10
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.10-slim/Dockerfile b/nim_2.0.10-slim/Dockerfile
new file mode 100644
index 0000000..c6eb751
--- /dev/null
+++ b/nim_2.0.10-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.10
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.10/Dockerfile b/nim_2.0.10/Dockerfile
new file mode 100644
index 0000000..567cde0
--- /dev/null
+++ b/nim_2.0.10/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.10
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.12-alpine-slim/Dockerfile b/nim_2.0.12-alpine-slim/Dockerfile
new file mode 100644
index 0000000..8fe325f
--- /dev/null
+++ b/nim_2.0.12-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.12
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.12-alpine/Dockerfile b/nim_2.0.12-alpine/Dockerfile
new file mode 100644
index 0000000..4d1aa3f
--- /dev/null
+++ b/nim_2.0.12-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.12
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.12-slim/Dockerfile b/nim_2.0.12-slim/Dockerfile
new file mode 100644
index 0000000..6f5c2b5
--- /dev/null
+++ b/nim_2.0.12-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.12
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.12/Dockerfile b/nim_2.0.12/Dockerfile
new file mode 100644
index 0000000..3d9426b
--- /dev/null
+++ b/nim_2.0.12/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.12
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.2-alpine-slim/Dockerfile b/nim_2.0.2-alpine-slim/Dockerfile
new file mode 100644
index 0000000..97fabef
--- /dev/null
+++ b/nim_2.0.2-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.2
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.2-alpine/Dockerfile b/nim_2.0.2-alpine/Dockerfile
new file mode 100644
index 0000000..05b42ab
--- /dev/null
+++ b/nim_2.0.2-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.2
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.2-slim/Dockerfile b/nim_2.0.2-slim/Dockerfile
new file mode 100644
index 0000000..73c18ad
--- /dev/null
+++ b/nim_2.0.2-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.2
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.2/Dockerfile b/nim_2.0.2/Dockerfile
new file mode 100644
index 0000000..9b1d5fe
--- /dev/null
+++ b/nim_2.0.2/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.2
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.4-alpine-slim/Dockerfile b/nim_2.0.4-alpine-slim/Dockerfile
new file mode 100644
index 0000000..3110570
--- /dev/null
+++ b/nim_2.0.4-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.4
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.4-alpine/Dockerfile b/nim_2.0.4-alpine/Dockerfile
new file mode 100644
index 0000000..be20aeb
--- /dev/null
+++ b/nim_2.0.4-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.4
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.4-slim/Dockerfile b/nim_2.0.4-slim/Dockerfile
new file mode 100644
index 0000000..d99b158
--- /dev/null
+++ b/nim_2.0.4-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.4
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.4/Dockerfile b/nim_2.0.4/Dockerfile
new file mode 100644
index 0000000..bdf32f8
--- /dev/null
+++ b/nim_2.0.4/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.4
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.6-alpine-slim/Dockerfile b/nim_2.0.6-alpine-slim/Dockerfile
new file mode 100644
index 0000000..4058844
--- /dev/null
+++ b/nim_2.0.6-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.6
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.6-alpine/Dockerfile b/nim_2.0.6-alpine/Dockerfile
new file mode 100644
index 0000000..417809f
--- /dev/null
+++ b/nim_2.0.6-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.6
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.6-slim/Dockerfile b/nim_2.0.6-slim/Dockerfile
new file mode 100644
index 0000000..0a8e043
--- /dev/null
+++ b/nim_2.0.6-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.6
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.6/Dockerfile b/nim_2.0.6/Dockerfile
new file mode 100644
index 0000000..ee3394f
--- /dev/null
+++ b/nim_2.0.6/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.6
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.8-alpine-slim/Dockerfile b/nim_2.0.8-alpine-slim/Dockerfile
new file mode 100644
index 0000000..8d4c6c2
--- /dev/null
+++ b/nim_2.0.8-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.8
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.8-alpine/Dockerfile b/nim_2.0.8-alpine/Dockerfile
new file mode 100644
index 0000000..dc6102d
--- /dev/null
+++ b/nim_2.0.8-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.0.8
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.8-slim/Dockerfile b/nim_2.0.8-slim/Dockerfile
new file mode 100644
index 0000000..b9d26cb
--- /dev/null
+++ b/nim_2.0.8-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.8
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0.8/Dockerfile b/nim_2.0.8/Dockerfile
new file mode 100644
index 0000000..2972118
--- /dev/null
+++ b/nim_2.0.8/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.8
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.0/Dockerfile b/nim_2.0/Dockerfile
new file mode 100644
index 0000000..3b65404
--- /dev/null
+++ b/nim_2.0/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.0.14
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.0-alpine-slim/Dockerfile b/nim_2.2.0-alpine-slim/Dockerfile
new file mode 100644
index 0000000..4995d5f
--- /dev/null
+++ b/nim_2.2.0-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.0
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.0-alpine/Dockerfile b/nim_2.2.0-alpine/Dockerfile
new file mode 100644
index 0000000..bdc0b6a
--- /dev/null
+++ b/nim_2.2.0-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.0
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.0-slim/Dockerfile b/nim_2.2.0-slim/Dockerfile
new file mode 100644
index 0000000..e5e47c5
--- /dev/null
+++ b/nim_2.2.0-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.0
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.0/Dockerfile b/nim_2.2.0/Dockerfile
new file mode 100644
index 0000000..d9dadbd
--- /dev/null
+++ b/nim_2.2.0/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.0
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.2-alpine-slim/Dockerfile b/nim_2.2.2-alpine-slim/Dockerfile
new file mode 100644
index 0000000..87634ba
--- /dev/null
+++ b/nim_2.2.2-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.2
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.2-alpine/Dockerfile b/nim_2.2.2-alpine/Dockerfile
new file mode 100644
index 0000000..3d221c4
--- /dev/null
+++ b/nim_2.2.2-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.2
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.2-slim/Dockerfile b/nim_2.2.2-slim/Dockerfile
new file mode 100644
index 0000000..74f33b7
--- /dev/null
+++ b/nim_2.2.2-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.2
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.2/Dockerfile b/nim_2.2.2/Dockerfile
new file mode 100644
index 0000000..bc749de
--- /dev/null
+++ b/nim_2.2.2/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.2
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.4-alpine-slim/Dockerfile b/nim_2.2.4-alpine-slim/Dockerfile
new file mode 100644
index 0000000..32bfe46
--- /dev/null
+++ b/nim_2.2.4-alpine-slim/Dockerfile
@@ -0,0 +1,31 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.4
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        libgcc \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.4-alpine/Dockerfile b/nim_2.2.4-alpine/Dockerfile
new file mode 100644
index 0000000..aced3c5
--- /dev/null
+++ b/nim_2.2.4-alpine/Dockerfile
@@ -0,0 +1,40 @@
+FROM alpine:3.20
+
+ENV NIM_VERSION=2.2.4
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apk add --no-cache \
+        ca-certificates \
+        g++ \
+        git \
+        libgcc \
+        mercurial \
+        nodejs \
+        openssl-dev \
+        wget \
+        xz \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.4-slim/Dockerfile b/nim_2.2.4-slim/Dockerfile
new file mode 100644
index 0000000..bba55e2
--- /dev/null
+++ b/nim_2.2.4-slim/Dockerfile
@@ -0,0 +1,33 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.4
+ENV PATH="/usr/local/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        libssl-dev \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2.2.4/Dockerfile b/nim_2.2.4/Dockerfile
new file mode 100644
index 0000000..fd7ab6b
--- /dev/null
+++ b/nim_2.2.4/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.4
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]
diff --git a/nim_2/Dockerfile b/nim_2/Dockerfile
new file mode 100644
index 0000000..aeae9f3
--- /dev/null
+++ b/nim_2/Dockerfile
@@ -0,0 +1,42 @@
+FROM ubuntu:noble
+
+ENV NIM_VERSION=2.2.6
+ENV PATH="/usr/local/bin:/root/.nimble/bin:${PATH}"
+
+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"
+
+RUN set -eux; \
+    apt-get update; \
+    apt-get install -y --no-install-recommends \
+        ca-certificates \
+        g++ \
+        git \
+        libssl-dev \
+        mercurial \
+        nodejs \
+        wget \
+        xz-utils \
+    ; \
+    \
+    wget -O nim.tar.xz "https://nim-lang.org/download/nim-2.2.6.tar.xz"; \
+    mkdir -p /usr/local/src/nim; \
+    tar -xf nim.tar.xz -C /usr/local/src/nim --strip-components=1; \
+    rm nim.tar.xz; \
+    \
+    cd /usr/local/src/nim; \
+    sh build.sh; \
+    \
+    bin/nim c koch; \
+    ./koch tools; \
+    \
+    ln -s /usr/local/src/nim/bin/nim /usr/local/bin/nim; \
+    ln -s /usr/local/src/nim/bin/nimble /usr/local/bin/nimble; \
+    ln -s /usr/local/src/nim/bin/nimsuggest /usr/local/bin/nimsuggest; \
+    ln -s /usr/local/src/nim/bin/testament /usr/local/bin/testament; \
+    \
+    rm -rf /usr/local/src/nim/c_code /usr/local/src/nim/tests; \
+    apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \
+    rm -rf /var/lib/apt/lists/*
+
+WORKDIR /app
+CMD ["nim", "--version"]

@tianon
Copy link
Member

tianon commented Jan 30, 2026

I think for the sake of reviewing this, it would be good if we could remove (or at least comment out) everything except the latest version so we can more easily review the shape of the thing -- the diff of adding more versions temporarily for backfill as a follow-up instead will be much cleaner/simpler to review too (since it'll diff across the existing versions so it'll mostly just be version number changes, from what I can see).

So for my first pass, I'm going to focus on the 2.2.6 portion of the diff. 👍

Also, to be clear, this is not everything, but this already a lot so I figured maybe I'll start here (I only really got through the primary Alpine base, but a lot of this applies to Ubuntu as well). 😄


+Tags: 2.2.6-alpine-regular
+SharedTags: 2.2.6-alpine, latest-alpine, 2-alpine, 2.2-alpine
+Tags: 2.2.6-alpine-slim
+Tags: 2.2.6-ubuntu-regular
+SharedTags: 2.2.6-regular, 2.2.6-ubuntu, 2.2.6, latest-regular, latest-ubuntu, latest, 2-regular, 2-ubuntu, 2, 2.2-regular, 2.2-ubuntu, 2.2
+Tags: 2.2.6-ubuntu-slim
+SharedTags: 2.2.6-slim, latest-slim, 2-slim, 2.2-slim

A few notes on these:

  • our documentation on it could be better, but SharedTags: is primarily for Windows images to have overlapping tags with Linux (and you don't have any Windows tags here, so these aren't really doing anything for you)

  • latest-foo is incorrectly formatted (as the CI is complaining about) -- this should be simply foo (latest as a tag in general is a misnomer already, but only exists to be the "default" and we don't encourage users to ever type/see :latest explicitly)

  • in other official images, the term slim is used fairly consistently for "a smaller version of the default images", and the reason Alpine even ends up being supported at all is because it can be significantly smaller, so it seems a little bit odd to me at first glance to have a "fat" Alpine image -- is Alpine an officially supported and recommended platform upstream?

  • it might be a good idea to add additional aliases for the specific version of the base distribution (nim:alpine and nim:alpine3.23, for example) -- this helps when you need to bump the "square wheel" so that users can have a quick way to get back to the older base distribution while they adapt to the breaking changes


+FROM alpine:3.20

This is a pretty old version now (that's EOL in 2 months 😬) - you probably want to update to 3.23 ASAP. 😅


+LABEL authors="https://github.com/nim-lang/docker-images/graphs/contributors"

See #3540, especially #3540 (comment):

We don't actively recommend using labels. If an image maintainer wants to have labels, that is fine, but label names should adhere to the image spec: https://github.com/opencontainers/image-spec/blob/v1.0.1/annotations.md

And #3540 (comment):

It's worth updating this to note that our build system now sets several useful and appropriate OCI annotations directly on the images we push: https://oci.dag.dev/?image=hello-world

"annotations": {
  "com.docker.official-images.bashbrew.arch": "amd64",
  "org.opencontainers.image.base.name": "scratch",
  "org.opencontainers.image.created": "2025-01-22T02:27:30Z",
  "org.opencontainers.image.revision": "a71acd2dfb8c21c8e42a8f926ce37c1ffbf8eae7",
  "org.opencontainers.image.source": "https://github.com/docker-library/hello-world.git#a71acd2dfb8c21c8e42a8f926ce37c1ffbf8eae7:amd64/hello-world",
  "org.opencontainers.image.url": "https://hub.docker.com/_/hello-world",
  "org.opencontainers.image.version": "linux"
}

(I would honestly just recommend removing this line completely)


+RUN apk add --no-cache g++ curl tar xz nodejs

Are all of these really necessary at runtime? Any particular reason to not be FROM node:xxx instead (or to copy Node from it)?


+RUN mkdir -p /nim; \

Using semi-colons to delimit your RUN lines is a great idea, but only if it's coupled with at least set -e to make sure that if any of them fails, the image doesn't get built successfully (but wrong - like if nim failed to download completely we'd still have a successful empty image).

So I'd suggest something like this as a preamble for any "complex" RUN line:

RUN set -eux; \
    ...

Also, /nim is an odd place to install your software in the image, but mostly doesn't matter in practice.


+    curl -sL "https://nim-lang.org/download/nim-2.2.6.tar.xz" \

This download definitely needs a lot more verification. 😬

For example, if the download even fails for any reason, this will happily barrel onwards (no -f/--fail on curl, no set -e, etc).

See https://github.com/docker-library/official-images#image-build for more explicit detail on this, but at the bare minimum this should have at least a checksum (and it appears there's an official upstream SHA256 already published at https://nim-lang.org/download/nim-2.2.6.tar.xz.sha256 whose value should be embedded in the Dockerfile 😅).


+    |tar xJ --strip-components=1 -C /nim; \

Mixing the BSD-style no-dash arguments with GNU-style dashed arguments is something that works, but I wouldn't recommend it. 😅

(Also, piping directly from curl into tar means you might lose the failing exit code of curl, but to add a checksum verification in between will require changing that anyhow. 🙇)


+    cd /nim; sh build.sh; \

Just to be certain, you want the official images of nim to do fresh builds from source? (it appears that y'all publish official upstream binaries, and we don't have a strong opinion either way, but I want to double check that this is really intentional)


+    rm -r c_code tests; \

This seems kind of odd -- maybe it could have a comment explaining why this is done? 😅

    cd /nim; sh build.sh; \
# remove things that are only useful during build (or something - I'm just guessing)
    rm -r c_code tests; \

+    ln -s `pwd`/bin/nim /bin/nim

Putting symlinks or binaries directly in /bin is kind of odd when you're inside a distribution (where the distribution's package manager very reasonably assumes it "owns" /bin and provides /usr/local/bin for non-distro-provided binaries).

FWIW, you can also replace pwd with $PWD provided by the shell (ln -s "$PWD/bin/nim" /bin/nim).

That being said, maybe it's better to simply update PATH so that it includes /nim/bin since the binaries you want available already exist there?

ENV PATH /nim/bin:$PATH

@moigagoo
Copy link
Author

moigagoo commented Jan 31, 2026

@tianon First off, huge thank you for taking the time to review this PR. It's been sitting unreviewed for months and I've totally forgotten about it.

The docs are a bit confusing (at least to me), so I apologize for the numerous violations of the official guidelines. I was basically copying Python's library file but I guess the guidelines evolved since the last time looked.

However, some of the errors have already been addressed in my yesterday's update. Let's go through your comments one by one. I'm marking the ones that are already addressed with ✅, the ones with open questions with 🤔, and the ones that I just must fix but haven't yet with ❗.

our documentation on it could be better, but SharedTags: is primarily for Windows images to have overlapping tags with Linux (and you don't have any Windows tags here, so these aren't really doing anything for you)

✅ Thanks for the clarification! I couldn't understand their purpose so I just removed them. I don't have Windows images anyway so I guess it's fine.

latest-foo is incorrectly formatted (as the CI is complaining about) -- this should be simply foo (latest as a tag in general is a misnomer already, but only exists to be the "default" and we don't encourage users to ever type/see :latest explicitly)

✅ Fixed. There's now only one latest entry.

in other official images, the term slim is used fairly consistently for "a smaller version of the default images", and the reason Alpine even ends up being supported at all is because it can be significantly smaller, so it seems a little bit odd to me at first glance to have a "fat" Alpine image -- is Alpine an officially supported and recommended platform upstream?

Maybe I misunderstood the meaning of slim... My slim versions include only the Nim compiler, i.e. the bare minimum. Regular images also ship with the package manager, test tunner, and some other tools.

I've added Alpine basically because Python did, and I was just copying their design.

🤔 I'm actually totally OK with dropping Alpine, less moving parts for me to support. Would that be the recommended way?

it might be a good idea to add additional aliases for the specific version of the base distribution (nim:alpine and nim:alpine3.23, for example) -- this helps when you need to bump the "square wheel" so that users can have a quick way to get back to the older base distribution while they adapt to the breaking changes

🤔 Thanks, sounds reasonable. If I do drop Alpine, I suppose the tags should be something like noble-2.2, noble-2, correct?

This is a pretty old version now (that's EOL in 2 months 😬) - you probably want to update to 3.23 ASAP. 😅

🤔 Thanks or the hint! I'll definitely bump it (if I choose to keep Alpine support).

(I would honestly just recommend removing this line completely)

✅ Done, will push with the next update. I thought labels were mandatory, so glad they're not used, less for me to support :-)

Are all of these really necessary at runtime? Any particular reason to not be FROM node:xxx instead (or to copy Node from it)?

✅ Yep, Nodejs is required since Nim compiles to C, C++, and JavaScript. The reason I'm not basing on node is that GCC is also a requirement, so I can't omit installing them both anyway, so I picked a neutral base.

So I'd suggest something like this as a preamble for any "complex" RUN line:

✅ Fixed in the latest update. I've left a single RUN with set -eux in it.

Also, /nim is an odd place to install your software in the image, but mostly doesn't matter in practice.

✅ This was changed in the latest update.

See https://github.com/docker-library/official-images#image-build for more explicit detail on this, but at the bare minimum this should have at least a checksum (and it appears there's an official upstream SHA256 already published at https://nim-lang.org/download/nim-2.2.6.tar.xz.sha256 whose value should be embedded in the Dockerfile 😅).

❗Thanks, will do.

Mixing the BSD-style no-dash arguments with GNU-style dashed arguments is something that works, but I wouldn't recommend it. 😅
(Also, piping directly from curl into tar means you might lose the failing exit code of curl, but to add a checksum verification in between will require changing that anyhow. 🙇)

✅ I think I just copied that from the official guide. Anyway, there's no piping anymore in the latest update. And since I'll have to add checksum check, this will change anyway.

Just to be certain, you want the official images of nim to do fresh builds from source? (it appears that y'all publish official upstream binaries, and we don't have a strong opinion either way, but I want to double check that this is really intentional)

🤔 Yeah that's intentional but I also don't have a strong opinion about it. I can't remember why I chose this path over just fetching the pre-built binaries, this was years ago... I guess, to support multiple architectures, I'll have to build from source anyway since the pre-built binaries are available only for x86 and x86_64 but not for arm.

This seems kind of odd -- maybe it could have a comment explaining why this is done? 😅

❗ Sigh, if only I knew myself 😅 I think this is an ancient pasta. Putting a comment definitely makes sense.

Putting symlinks or binaries directly in /bin is kind of odd when you're inside a distribution (where the distribution's package manager very reasonably assumes it "owns" /bin and provides /usr/local/bin for non-distro-provided binaries).

✅ Fixed.

That being said, maybe it's better to simply update PATH so that it includes /nim/bin since the binaries you want available already exist there?

✅ I can't remember why I did it this way but I have a vague memory that I used to do it exactly as you suggested but it didn't work well for some reason.

@tianon
Copy link
Member

tianon commented Feb 4, 2026

Maybe I misunderstood the meaning of slim... My slim versions include only the Nim compiler, i.e. the bare minimum. Regular images also ship with the package manager, test tunner, and some other tools.

I've added Alpine basically because Python did, and I was just copying their design.

I'm actually totally OK with dropping Alpine, less moving parts for me to support. Would that be the recommended way?

Alpine variants tend to be really popular specifically because they're usually quite a bit smaller (50-100MB, if I had to spitball a number), but that also causes tension if the project itself doesn't actually support Alpine Linux and/or musl libc, so if that's not something Nim officially supports, then it's a lot easier to introduce later than it is to take it away later.

Thanks, sounds reasonable. If I do drop Alpine, I suppose the tags should be something like noble-2.2, noble-2, correct?

We usually put the distribution version at the end, since it reads more naturally (nim:2.2-noble reads naturally as Nim version 2.2 on Noble), but it's up to you how you'd like to structure these. 👍

Yep, Nodejs is required since Nim compiles to C, C++, and JavaScript. The reason I'm not basing on node is that GCC is also a requirement, so I can't omit installing them both anyway, so I picked a neutral base.

Ok, that's fair, but also means that installing Node.js is going to be a lot more involved than what you have now (curl | bash is definitely not going to be acceptable 😅).

So I'd still suggest being FROM node:xxx and then installing GCC via the package manager because that's going to be a lot easier and more readily available than installing Node.js in a secure way. Another alternative could be COPY --from=node:xxx ... but I don't think the Node.js image maintainers necessarily officially support that method of use, so you might have a tricky time.

Either way, the version of Node.js in use will need to be a version that's actively supported and maintained, and if you choose to install Node.js yourself, you'll be responsible for keeping up with keeping it up-to-date (where if you're FROM node:xxx or COPY --from=node:xxx ..., our build system will do that for you automatically when the tag you're based on gets updates).

Yeah that's intentional but I also don't have a strong opinion about it. I can't remember why I chose this path over just fetching the pre-built binaries, this was years ago... I guess, to support multiple architectures, I'll have to build from source anyway since the pre-built binaries are available only for x86 and x86_64 but not for arm.

Totally reasonable, just wanted to make sure you'd done so with intentional thought. 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants