From 76aa77a320c8a4b9ec23761a06e19f688cbb96e4 Mon Sep 17 00:00:00 2001
From: Griefed <griefed@griefed.de>
Date: Sat, 10 Jul 2021 15:09:06 +0200
Subject: [PATCH] build: Write Dockerfile

---
 Dockerfile | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 Dockerfile

diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..ffd9ffb
--- /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/*
-- 
GitLab