From deddba5031a9f03d0f46e983af03afff3e0fe62f Mon Sep 17 00:00:00 2001
From: Daya Adianto <dayaadianto@cs.ui.ac.id>
Date: Fri, 14 Feb 2025 14:51:10 +0700
Subject: [PATCH] chore: Update Dockerfile

---
 Dockerfile | 53 +++++++++++++++--------------------------------------
 1 file changed, 15 insertions(+), 38 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 99e96f7..fc872e8 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,44 +1,21 @@
-FROM jro7/flutter_lcov:latest
+ARG FLUTTER_VERSION="3.27.3"
+ARG SONAR_SCANNER_CLI_IMAGE_VERSION="11.2.0.1836_7.0.1"
 
-# Avoid warnings by switching to noninteractive
-ENV DEBIAN_FRONTEND=noninteractive
+FROM ghcr.io/cirruslabs/flutter:${FLUTTER_VERSION}
 
-# Setup workspace folder
-RUN mkdir -p /workspace && chown -R $(whoami):$(whoami) /workspace
-WORKDIR /workspace
+# Set up environment variables for Sonar Scanner CLI
+ENV SONAR_SCANNER_HOME="/opt/sonar-scanner" \
+    SONAR_USER_HOME="/opt/sonar-scanner/.sonar" \
+    SONAR_WORKDIR_PATH="/tmp/.scannerwork" \
+    XDG_CONFIG_HOME="/tmp" \
+    PATH="$PATH:$SONAR_SCANNER_HOME/bin"
 
-# Install packages
-RUN apt-get update \
-    && apt-get -y install --no-install-recommends ca-certificates git nodejs unzip wget xz-utils \
-    # Clean up
-    && apt-get autoremove -y \
-    && apt-get clean -y \
-    && rm -rf /var/lib/apt/lists/*
+# Copy Sonar Scanner into Flutter image
+COPY --from=docker.io/sonarsource/sonar-scanner-cli:${SONAR_SCANNER_CLI_IMAGE_VERSION} /opt/sonar-scanner $SONAR_SCANNER_HOME
+COPY --from=docker.io/sonarsource/sonar-scanner-cli:${SONAR_SCANNER_CLI_IMAGE_VERSION} /usr/bin/entrypoint.sh /usr/bin/entrypoint.sh
 
-# Configure Sonar Scanner CLI
-ARG SONAR_SCANNER_CLI_VERSION=4.6.0.2311
-RUN wget -qO sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-$SONAR_SCANNER_CLI_VERSION-linux.zip \
-    && unzip sonar-scanner-cli.zip -d /opt \
-    && chown -R $(whoami):$(whoami) /opt/sonar-scanner-$SONAR_SCANNER_CLI_VERSION-linux \
-    && rm sonar-scanner-cli.zip \
-    && chmod +x /opt/sonar-scanner-$SONAR_SCANNER_CLI_VERSION-linux/bin/sonar-scanner \
-    && ln -s /opt/sonar-scanner-$SONAR_SCANNER_CLI_VERSION-linux/bin/sonar-scanner /usr/local/bin/sonar-scanner
-
-# Configure shellcheck
-ARG SHELLCHECK_VERSION=latest
-RUN wget -qO /opt/shellcheck-${SHELLCHECK_VERSION}.tar.xz https://shellcheck.storage.googleapis.com/shellcheck-${SHELLCHECK_VERSION}.linux.x86_64.tar.xz \
-    && cd /opt \
-    && tar -xf shellcheck-${SHELLCHECK_VERSION}.tar.xz \
-    && chown -R $(whoami):$(whoami) /opt/shellcheck-${SHELLCHECK_VERSION} \
-    && rm shellcheck-${SHELLCHECK_VERSION}.tar.xz \
-    && chmod +x /opt/shellcheck-${SHELLCHECK_VERSION}/shellcheck \
-    && ln -s /opt/shellcheck-${SHELLCHECK_VERSION}/shellcheck /usr/local/bin/shellcheck
-
-# Switch back to dialog for any ad-hoc use of apt-get
-ENV DEBIAN_FRONTEND=''
-
-# Define default command to be run
-CMD ["sonar-scanner"]
+# Set entrypoint script
+ENTRYPOINT ["/usr/bin/entrypoint.sh"]
 
 # Container image metadata
 ## Note to editors: metadata values for `created`, `version`, and `revision`
@@ -46,7 +23,7 @@ CMD ["sonar-scanner"]
 ## It is also possible to pass other metadata values via build arguments.
 ARG IMAGE_CREATED=""
 ARG IMAGE_SOURCE="https://gitlab.cs.ui.ac.id/ichlasul.affan/sonar-scanner-cli-flutter-image"
-ARG IMAGE_VERSION=${SONAR_SCANNER_CLI_VERSION}
+ARG IMAGE_VERSION=${SONAR_SCANNER_CLI_IMAGE_VERSION}
 ARG IMAGE_REVISION=""
 ARG IMAGE_VENDOR="Faculty of Computer Science Universitas Indonesia"
 ARG IMAGE_TITLE="Sonar Scanner CLI Image for Flutter"
-- 
GitLab