Skip to content

Commit

Permalink
QD-6978 Set up linting and pass hadolint
Browse files Browse the repository at this point in the history
  • Loading branch information
tiulpin committed Sep 1, 2023
1 parent c34fbf8 commit 2824043
Show file tree
Hide file tree
Showing 10 changed files with 365 additions and 284 deletions.
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Hadolint
uses: hadolint/[email protected]
with:
dockerfile: ${{ matrix.version }}/${{ matrix.linter }}/Dockerfile
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
Expand Down
69 changes: 39 additions & 30 deletions 2023.2/android-community/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
ARG BASE_TAG="bullseye-slim"
FROM debian:$BASE_TAG

ENV HOME="/root" LC_ALL="en_US.UTF-8" QODANA_DIST="/opt/idea" QODANA_DATA="/data"
ENV JAVA_HOME="$QODANA_DIST/jbr" QODANA_DOCKER="true" QODANA_CONF="$HOME/.config/idea"

ENV HOME="/root" \
LC_ALL="en_US.UTF-8" \
QODANA_DIST="/opt/idea" \
QODANA_DATA="/data" \
QODANA_DOCKER="true"
ENV JAVA_HOME="$QODANA_DIST/jbr" \
QODANA_CONF="$HOME/.config/idea"
ENV PATH="$QODANA_DIST/bin:$PATH"

# hadolint ignore=SC2174
RUN mkdir -m 777 -p /opt $QODANA_DATA $QODANA_CONF && apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
curl \
fontconfig \
git \
git-lfs \
gnupg2 \
locales \
procps && \
ca-certificates=20210119 \
curl=7.74.0-1.3+deb11u7 \
fontconfig=2.13.1-4.2 \
git=1:2.30.2-1+deb11u2 \
git-lfs=2.13.2-1+b5 \
gnupg2=2.2.27-2+deb11u2 \
locales=2.31-13+deb11u6 \
procps=2:3.3.17-5 && \
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && locale-gen && \
apt-get autoremove -y && apt-get clean && \
chmod 777 -R $HOME && \
Expand All @@ -27,40 +32,42 @@ ENV GRADLE_USER_HOME="/data/cache/gradle"

ARG QD_BUILD="QDANDC-2023.2"
ARG QD_RELEASE="2023.2"
# hadolint ignore=DL3003,SC2043
RUN set -ex && \
dpkgArch="$(dpkg --print-architecture)" && \
case "$dpkgArch" in \
'amd64') \
OS_ARCH_SUFFIX=''; \
"amd64") \
OS_ARCH_SUFFIX=""; \
;; \
'arm64') \
OS_ARCH_SUFFIX='-aarch64'; \
"arm64") \
OS_ARCH_SUFFIX="-aarch64"; \
;; \
*) echo "Unsupported architecture $dpkgArch" >&2; exit 1 ;; \
esac && \
QD_NAME="qodana-$QD_BUILD$OS_ARCH_SUFFIX" \
QD_URL="https://download.jetbrains.com/qodana/$QD_RELEASE/$QD_NAME.tar.gz" && \
curl -fsSL "$QD_URL" -o /tmp/$QD_NAME.tar.gz \
"$QD_URL.sha256" -o /tmp/$QD_NAME.tar.gz.sha256 \
"$QD_URL.sha256.asc" -o /tmp/$QD_NAME.tar.gz.sha256.asc && \
export GNUPGHOME="$(mktemp -d)" && \
curl -fsSL "$QD_URL" -o "/tmp/$QD_NAME.tar.gz" \
"$QD_URL.sha256" -o "/tmp/$QD_NAME.tar.gz.sha256" \
"$QD_URL.sha256.asc" -o "/tmp/$QD_NAME.tar.gz.sha256.asc" && \
GNUPGHOME="$(mktemp -d)" && \
export GNUPGHOME && \
for key in \
"B46DC71E03FEEB7F89D1F2491F7A8F87B9D8F501" \
; do \
gpg --batch --keyserver "hkps://keys.openpgp.org" --recv-keys "$key" || \
gpg --batch --keyserver "keyserver.ubuntu.com" --recv-keys "$key" ; \
done && \
gpg --verify /tmp/$QD_NAME.tar.gz.sha256.asc /tmp/$QD_NAME.tar.gz.sha256 && \
(cd /tmp && sha256sum --check --status $QD_NAME.tar.gz.sha256) && \
mkdir -p /tmp/qd && tar -xzf /tmp/$QD_NAME.tar.gz --directory /tmp/qd --strip-components=1 && \
mv /tmp/qd/qodana-QD* $QODANA_DIST && \
chmod +x $QODANA_DIST/bin/*.sh $QODANA_DIST/bin/qodana && \
update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 0 && \
update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 0 && \
update-alternatives --set java $JAVA_HOME/bin/java && \
update-alternatives --set javac $JAVA_HOME/bin/javac && \
gpg --verify "/tmp/$QD_NAME.tar.gz.sha256.asc" "/tmp/$QD_NAME.tar.gz.sha256" && \
(cd /tmp && sha256sum --check --status "$QD_NAME.tar.gz.sha256") && \
mkdir -p /tmp/qd && tar -xzf "/tmp/$QD_NAME.tar.gz" --directory /tmp/qd --strip-components=1 && \
mv /tmp/qd/qodana-QD* "$QODANA_DIST" && \
chmod +x "$QODANA_DIST"/bin/*.sh "$QODANA_DIST"/bin/qodana && \
update-alternatives --install /usr/bin/java java "$JAVA_HOME/bin/java" 0 && \
update-alternatives --install /usr/bin/javac javac "$JAVA_HOME/bin/javac" 0 && \
update-alternatives --set java "$JAVA_HOME/bin/java" && \
update-alternatives --set javac "$JAVA_HOME/bin/javac" && \
apt-get purge --auto-remove -y gnupg2 && \
rm -rf /var/cache/apt /var/lib/apt/ /tmp/* $GNUPGHOME
rm -rf /var/cache/apt /var/lib/apt/ /tmp/* "$GNUPGHOME"

ENV ANDROID_SDK_ROOT="/opt/android-sdk" ANDROID_USER_HOME="$QODANA_DATA/cache/android"
ENV ANDROID_HOME="$ANDROID_SDK_ROOT"
Expand All @@ -71,7 +78,9 @@ COPY --from=amazoncorretto:11 /usr/lib/jvm/java-11-amazon-corretto $QODANA_CORET
ARG ANDROID_SDK_VERSION="9123335"
ARG ANDROID_SDK_SHA256="0bebf59339eaa534f4217f8aa0972d14dc49e7207be225511073c661ae01da0a"
ARG ANDROID_API_LEVEL="33"
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip && \
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# hadolint ignore=SC2174
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip=6.0-26+deb11u1 && \
mkdir -m 777 -p $QODANA_DATA/cache $ANDROID_USER_HOME $ANDROID_SDK_ROOT $ANDROID_SDK_ROOT/cmdline-tools $ANDROID_SDK_ROOT/platforms $ANDROID_SDK_ROOT/ndk && \
echo "${ANDROID_SDK_SHA256} /tmp/android.zip" > /tmp/shasum && \
curl -fsSL -o /tmp/android.zip \
Expand Down
72 changes: 40 additions & 32 deletions 2023.2/dotnet/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,14 @@ ARG BASE_TAG="6.0-bullseye-slim"
FROM node:$NODE_TAG AS node_base
FROM mcr.microsoft.com/dotnet/sdk:$BASE_TAG

ENV HOME="/root" LC_ALL="en_US.UTF-8" QODANA_DIST="/opt/idea" QODANA_DATA="/data"
ENV JAVA_HOME="$QODANA_DIST/jbr" QODANA_DOCKER="true" QODANA_CONF="$HOME/.config/idea"
ENV HOME="/root" \
LC_ALL="en_US.UTF-8" \
QODANA_DIST="/opt/idea" \
QODANA_DATA="/data" \
QODANA_DOCKER="true"
ENV JAVA_HOME="$QODANA_DIST/jbr" \
QODANA_CONF="$HOME/.config/idea"

ENV RIDER_UNREAL_ROOT="/data/unrealEngine" DOTNET_ROOT="/usr/share/dotnet"

# Not using the URL https://dot.net/v1/dotnet-install.sh because of https://github.com/dotnet/install-scripts/issues/276
Expand All @@ -15,17 +21,18 @@ ARG DOTNET_CHANNEL_B="6.0"

ENV PATH="$QODANA_DIST/bin:/opt/yarn/bin:$PATH"

# hadolint ignore=SC2174
RUN mkdir -m 777 -p $QODANA_DATA $QODANA_CONF $DOTNET_ROOT $RIDER_UNREAL_ROOT && apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
curl \
fontconfig \
git \
git-lfs \
gnupg2 \
locales \
procps \
software-properties-common && \
ca-certificates=20210119 \
curl=7.74.0-1.3+deb11u7 \
fontconfig=2.13.1-4.2 \
git=1:2.30.2-1+deb11u2 \
git-lfs=2.13.2-1+b5 \
gnupg2=2.2.27-2+deb11u2 \
locales=2.31-13+deb11u6 \
procps=2:3.3.17-5 \
software-properties-common=0.96.20.2-2.1 && \
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && locale-gen && \
apt-get autoremove -y && apt-get clean && \
chmod 777 -R $HOME && \
Expand All @@ -50,47 +57,48 @@ RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \
ln -s /usr/local/lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack && \
node --version && \
npm --version && \
yarn --version

RUN npm install -g eslint && npm config set update-notifier false && \
yarn --version && \
npm install -g [email protected] && npm config set update-notifier false && \
chmod 777 -R "$HOME/.npm" "$HOME/.npmrc"

ARG QD_BUILD="QDNET-2023.2"
ARG QD_RELEASE="2023.2"
# hadolint ignore=DL3003,SC2043
RUN set -ex && \
dpkgArch="$(dpkg --print-architecture)" && \
case "$dpkgArch" in \
'amd64') \
OS_ARCH_SUFFIX=''; \
"amd64") \
OS_ARCH_SUFFIX=""; \
;; \
'arm64') \
OS_ARCH_SUFFIX='-aarch64'; \
"arm64") \
OS_ARCH_SUFFIX="-aarch64"; \
;; \
*) echo "Unsupported architecture $dpkgArch" >&2; exit 1 ;; \
esac && \
QD_NAME="qodana-$QD_BUILD$OS_ARCH_SUFFIX" \
QD_URL="https://download.jetbrains.com/qodana/$QD_RELEASE/$QD_NAME.tar.gz" && \
curl -fsSL "$QD_URL" -o /tmp/$QD_NAME.tar.gz \
"$QD_URL.sha256" -o /tmp/$QD_NAME.tar.gz.sha256 \
"$QD_URL.sha256.asc" -o /tmp/$QD_NAME.tar.gz.sha256.asc && \
export GNUPGHOME="$(mktemp -d)" && \
curl -fsSL "$QD_URL" -o "/tmp/$QD_NAME.tar.gz" \
"$QD_URL.sha256" -o "/tmp/$QD_NAME.tar.gz.sha256" \
"$QD_URL.sha256.asc" -o "/tmp/$QD_NAME.tar.gz.sha256.asc" && \
GNUPGHOME="$(mktemp -d)" && \
export GNUPGHOME && \
for key in \
"B46DC71E03FEEB7F89D1F2491F7A8F87B9D8F501" \
; do \
gpg --batch --keyserver "hkps://keys.openpgp.org" --recv-keys "$key" || \
gpg --batch --keyserver "keyserver.ubuntu.com" --recv-keys "$key" ; \
done && \
gpg --verify /tmp/$QD_NAME.tar.gz.sha256.asc /tmp/$QD_NAME.tar.gz.sha256 && \
(cd /tmp && sha256sum --check --status $QD_NAME.tar.gz.sha256) && \
mkdir -p /tmp/qd && tar -xzf /tmp/$QD_NAME.tar.gz --directory /tmp/qd --strip-components=1 && \
mv /tmp/qd/qodana-QD* $QODANA_DIST && \
chmod +x $QODANA_DIST/bin/*.sh $QODANA_DIST/bin/qodana && \
update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 0 && \
update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 0 && \
update-alternatives --set java $JAVA_HOME/bin/java && \
update-alternatives --set javac $JAVA_HOME/bin/javac && \
gpg --verify "/tmp/$QD_NAME.tar.gz.sha256.asc" "/tmp/$QD_NAME.tar.gz.sha256" && \
(cd /tmp && sha256sum --check --status "$QD_NAME.tar.gz.sha256") && \
mkdir -p /tmp/qd && tar -xzf "/tmp/$QD_NAME.tar.gz" --directory /tmp/qd --strip-components=1 && \
mv /tmp/qd/qodana-QD* "$QODANA_DIST" && \
chmod +x "$QODANA_DIST"/bin/*.sh "$QODANA_DIST"/bin/qodana && \
update-alternatives --install /usr/bin/java java "$JAVA_HOME/bin/java" 0 && \
update-alternatives --install /usr/bin/javac javac "$JAVA_HOME/bin/javac" 0 && \
update-alternatives --set java "$JAVA_HOME/bin/java" && \
update-alternatives --set javac "$JAVA_HOME/bin/javac" && \
apt-get purge --auto-remove -y gnupg2 && \
rm -rf /var/cache/apt /var/lib/apt/ /tmp/* $GNUPGHOME
rm -rf /var/cache/apt /var/lib/apt/ /tmp/* "$GNUPGHOME"

LABEL maintainer="[email protected]" description="Qodana for .NET (https://jb.gg/qodana-dotnet)"
WORKDIR /data/project
Expand Down
66 changes: 37 additions & 29 deletions 2023.2/go/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,27 @@ ARG BASE_TAG="1.19-bullseye"
FROM node:$NODE_TAG AS node_base
FROM golang:$BASE_TAG

ENV HOME="/root" LC_ALL="en_US.UTF-8" QODANA_DIST="/opt/idea" QODANA_DATA="/data"
ENV JAVA_HOME="$QODANA_DIST/jbr" QODANA_DOCKER="true" QODANA_CONF="$HOME/.config/idea"
ENV HOME="/root" \
LC_ALL="en_US.UTF-8" \
QODANA_DIST="/opt/idea" \
QODANA_DATA="/data" \
QODANA_DOCKER="true"
ENV JAVA_HOME="$QODANA_DIST/jbr" \
QODANA_CONF="$HOME/.config/idea"

ENV PATH="$QODANA_DIST/bin:/opt/yarn/bin:$PATH"

# hadolint ignore=SC2174
RUN mkdir -m 777 -p /opt $QODANA_DATA $QODANA_CONF && apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
curl \
fontconfig \
git \
git-lfs \
gnupg2 \
locales \
procps && \
ca-certificates=20210119 \
curl=7.74.0-1.3+deb11u7 \
fontconfig=2.13.1-4.2 \
git=1:2.30.2-1+deb11u2 \
git-lfs=2.13.2-1+b5 \
gnupg2=2.2.27-2+deb11u2 \
locales=2.31-13+deb11u6 \
procps=2:3.3.17-5 && \
echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen && locale-gen && \
apt-get autoremove -y && apt-get clean && \
chmod 777 -R $HOME && \
Expand All @@ -36,45 +42,47 @@ RUN ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && \
node --version && \
npm --version && \
yarn --version && \
npm install -g eslint && npm config set update-notifier false && \
npm install -g eslint@v8.47.0 && npm config set update-notifier false && \
chmod 777 -R "$HOME/.npm" "$HOME/.npmrc"

ARG QD_BUILD="QDGO-2023.2"
ARG QD_RELEASE="2023.2"
# hadolint ignore=DL3003,SC2043
RUN set -ex && \
dpkgArch="$(dpkg --print-architecture)" && \
case "$dpkgArch" in \
'amd64') \
OS_ARCH_SUFFIX=''; \
"amd64") \
OS_ARCH_SUFFIX=""; \
;; \
'arm64') \
OS_ARCH_SUFFIX='-aarch64'; \
"arm64") \
OS_ARCH_SUFFIX="-aarch64"; \
;; \
*) echo "Unsupported architecture $dpkgArch" >&2; exit 1 ;; \
esac && \
QD_NAME="qodana-$QD_BUILD$OS_ARCH_SUFFIX" \
QD_URL="https://download.jetbrains.com/qodana/$QD_RELEASE/$QD_NAME.tar.gz" && \
curl -fsSL "$QD_URL" -o /tmp/$QD_NAME.tar.gz \
"$QD_URL.sha256" -o /tmp/$QD_NAME.tar.gz.sha256 \
"$QD_URL.sha256.asc" -o /tmp/$QD_NAME.tar.gz.sha256.asc && \
export GNUPGHOME="$(mktemp -d)" && \
curl -fsSL "$QD_URL" -o "/tmp/$QD_NAME.tar.gz" \
"$QD_URL.sha256" -o "/tmp/$QD_NAME.tar.gz.sha256" \
"$QD_URL.sha256.asc" -o "/tmp/$QD_NAME.tar.gz.sha256.asc" && \
GNUPGHOME="$(mktemp -d)" && \
export GNUPGHOME && \
for key in \
"B46DC71E03FEEB7F89D1F2491F7A8F87B9D8F501" \
; do \
gpg --batch --keyserver "hkps://keys.openpgp.org" --recv-keys "$key" || \
gpg --batch --keyserver "keyserver.ubuntu.com" --recv-keys "$key" ; \
done && \
gpg --verify /tmp/$QD_NAME.tar.gz.sha256.asc /tmp/$QD_NAME.tar.gz.sha256 && \
(cd /tmp && sha256sum --check --status $QD_NAME.tar.gz.sha256) && \
mkdir -p /tmp/qd && tar -xzf /tmp/$QD_NAME.tar.gz --directory /tmp/qd --strip-components=1 && \
mv /tmp/qd/qodana-QD* $QODANA_DIST && \
chmod +x $QODANA_DIST/bin/*.sh $QODANA_DIST/bin/qodana && \
update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 0 && \
update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 0 && \
update-alternatives --set java $JAVA_HOME/bin/java && \
update-alternatives --set javac $JAVA_HOME/bin/javac && \
gpg --verify "/tmp/$QD_NAME.tar.gz.sha256.asc" "/tmp/$QD_NAME.tar.gz.sha256" && \
(cd /tmp && sha256sum --check --status "$QD_NAME.tar.gz.sha256") && \
mkdir -p /tmp/qd && tar -xzf "/tmp/$QD_NAME.tar.gz" --directory /tmp/qd --strip-components=1 && \
mv /tmp/qd/qodana-QD* "$QODANA_DIST" && \
chmod +x "$QODANA_DIST"/bin/*.sh "$QODANA_DIST"/bin/qodana && \
update-alternatives --install /usr/bin/java java "$JAVA_HOME/bin/java" 0 && \
update-alternatives --install /usr/bin/javac javac "$JAVA_HOME/bin/javac" 0 && \
update-alternatives --set java "$JAVA_HOME/bin/java" && \
update-alternatives --set javac "$JAVA_HOME/bin/javac" && \
apt-get purge --auto-remove -y gnupg2 && \
rm -rf /var/cache/apt /var/lib/apt/ /tmp/* $GNUPGHOME
rm -rf /var/cache/apt /var/lib/apt/ /tmp/* "$GNUPGHOME"

LABEL maintainer="[email protected]" description="Qodana for Go (https://jb.gg/qodana-go)"
WORKDIR /data/project
Expand Down
Loading

0 comments on commit 2824043

Please sign in to comment.