diff --git a/Dockerfile b/Dockerfile index 99e96f7714898fc6c161b456dc6c731980311560..fc872e8e1cd896e4837166632438d1c5bdcff9e6 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"