From 57e8b82f025bbd881770c74c04e48daaf3e9271f Mon Sep 17 00:00:00 2001 From: Luke Else Date: Fri, 4 Jul 2025 16:33:54 +0100 Subject: [PATCH] Uploading first set of base images --- .gitea/workflows/build-and-push.yml | 27 +++++++++++++++++++++ base/Dockerfile | 8 +++++++ go/Dockerfile | 4 ++++ lab/Dockerfile | 37 +++++++++++++++++++++++++++++ nodejs/Dockerfile | 5 ++++ python/Dockerfile | 5 ++++ rust/Dockerfile | 5 ++++ 7 files changed, 91 insertions(+) create mode 100644 .gitea/workflows/build-and-push.yml create mode 100644 base/Dockerfile create mode 100644 go/Dockerfile create mode 100644 lab/Dockerfile create mode 100644 nodejs/Dockerfile create mode 100644 python/Dockerfile create mode 100644 rust/Dockerfile diff --git a/.gitea/workflows/build-and-push.yml b/.gitea/workflows/build-and-push.yml new file mode 100644 index 0000000..0b92478 --- /dev/null +++ b/.gitea/workflows/build-and-push.yml @@ -0,0 +1,27 @@ +name: Build and Push Dev Containers + +on: + push: + branches: + - main + +jobs: + build: + runs-on: docker + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Docker + uses: docker/setup-buildx-action@v3 + + - name: Log in to local registry + run: echo "${{ secrets.LOCAL_REGISTRY_PASSWORD }}" | docker login ${ secrets.CONTAINER_REGISTRY } -u user --password-stdin + + - name: Build and push containers + run: | + for dir in base lab python rust go nodejs; do + tag="${ secrets.CONTAINER_REGISTRY }/base-images/$dir:latest" + docker build -t "$tag" "$dir" + docker push "$tag" + done diff --git a/base/Dockerfile b/base/Dockerfile new file mode 100644 index 0000000..27bdac6 --- /dev/null +++ b/base/Dockerfile @@ -0,0 +1,8 @@ +FROM alpine:latest + +RUN apk add --no-cache \ + bash \ + curl \ + helix + +CMD [ "/bin/bash" ] diff --git a/go/Dockerfile b/go/Dockerfile new file mode 100644 index 0000000..75b099b --- /dev/null +++ b/go/Dockerfile @@ -0,0 +1,4 @@ +FROM base:latest + +RUN apk add --no-cache \ + go diff --git a/lab/Dockerfile b/lab/Dockerfile new file mode 100644 index 0000000..b6466d3 --- /dev/null +++ b/lab/Dockerfile @@ -0,0 +1,37 @@ +FROM alpine:latest + +# Install core utilities and development tools +RUN apk add --no-cache \ + bash \ + curl \ + git \ + jq \ + helix \ + openssh \ + sudo \ + zsh \ + ca-certificates \ + busybox-extras \ + net-tools \ + iputils \ + python3 \ + rust \ + cargo \ + go \ + nodejs \ + npm \ + make \ + build-base + +# Add a non-root user +RUN adduser -D dev && echo "dev ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers +RUN chsh -s /bin/zsh dev + +# Set working directory +WORKDIR /home/dev + +# Switch to non-root user +USER dev + +# Default command +CMD ["/bin/zsh"] diff --git a/nodejs/Dockerfile b/nodejs/Dockerfile new file mode 100644 index 0000000..0f6a743 --- /dev/null +++ b/nodejs/Dockerfile @@ -0,0 +1,5 @@ +FROM base:latest + +RUN apk add --no-cache \ + nodejs \ + pnpm diff --git a/python/Dockerfile b/python/Dockerfile new file mode 100644 index 0000000..0336a68 --- /dev/null +++ b/python/Dockerfile @@ -0,0 +1,5 @@ +FROM base:latest + +RUN apk add --no-cache \ + python3 \ + py3-pip diff --git a/rust/Dockerfile b/rust/Dockerfile new file mode 100644 index 0000000..51f5af0 --- /dev/null +++ b/rust/Dockerfile @@ -0,0 +1,5 @@ +FROM base:latest + +RUN apk add --no-cache \ + rust \ + cargo