diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..ffd9ffb7ce1594ccf98a7435a2214d66a925c968
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,51 @@
+FROM alpine AS fetcher
+
+RUN \
+  apk add \
+    curl && \
+  LATEST_DOCKERX=$(curl --silent "https://api.github.com/repos/docker/buildx/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c 2-) && \
+  curl \
+    -L \
+    --output /docker-buildx \
+      "https://github.com/docker/buildx/releases/download/v${LATEST_DOCKERX}/buildx-v${LATEST_DOCKERX}.linux-amd64" && \
+  chmod a+x \
+    /docker-buildx
+
+FROM docker:20.10.7
+
+LABEL maintainer="Griefed <griefed@griefed.de>"
+LABEL description="Provides GitLab Semantic Release, buildx, JDK 8, NodeJS for Griefed's GitLab CI/CD pipelines."
+
+COPY --from=fetcher /docker-buildx /usr/lib/docker/cli-plugins/docker-buildx
+
+RUN \
+  apk update && \
+  apk upgrade -y && \
+  apk add --no-cache \
+    bash \
+    ca-certificates \
+    curl \
+    git \
+    nodejs \
+    npm \
+    openjdk8 && \
+  echo "**** Installing GitLab Semantic Release ****" && \
+  npm install -g \
+    conventional-changelog-conventionalcommits \
+    semantic-release \
+    @semantic-release/changelog \
+    @semantic-release/commit-analyzer \
+    @semantic-release/exec \
+    @semantic-release/git \
+    @semantic-release/gitlab \
+    @semantic-release/npm \
+    @semantic-release/release-notes-generator && \
+  echo "**** Making docker-buildx executable for all ****" && \
+  chmod a+x \
+    /usr/lib/docker/cli-plugins/docker-buildx && \
+  echo "**** Installing quasar ****" && \
+  npm install -g \
+    @quasar/cli && \
+  echo "**** Cleanup ****" && \
+  rm -rf \
+    /var/cache/apk/*