Last active
October 16, 2020 21:28
-
-
Save FibreFoX/dd945394fea423dbc2244b49127492e0 to your computer and use it in GitHub Desktop.
SonarQube 8.5.0 running on Raspberry Pi 4 (32bit Raspbian)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.3" | |
services: | |
sonarqube: | |
build: ./ | |
restart: unless-stopped | |
ports: | |
- '9000:9000' | |
depends_on: | |
- database | |
environment: | |
SONAR_JDBC_URL: jdbc:postgresql://database:5432/sonar | |
SONAR_JDBC_USERNAME: sonar | |
SONAR_JDBC_PASSWORD: sonar | |
volumes: | |
- './data:/opt/sonarqube/data' | |
- './logs:/opt/sonarqube/logs' | |
database: | |
image: postgres:12 | |
environment: | |
POSTGRES_USER: sonar | |
POSTGRES_PASSWORD: sonar | |
volumes: | |
- './postgresql:/var/lib/postgresql' | |
- './postgresql_data:/var/lib/postgresql/data' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM openjdk:11-jre-slim-stretch | |
# Versions | |
ARG SONAR_VERSION=8.5.0.37579 | |
ARG WRAPPER_VERSION=3.5.43 | |
# Add needed software and create sonarqube user | |
RUN ["/bin/bash", "-c", "set -o pipefail && \ | |
apt-get update && \ | |
apt-get -y install openjdk-11-jre-headless unzip wget procps && \ | |
rm -rf /var/lib/apt/lists/*"] | |
WORKDIR /opt | |
RUN ["/bin/bash", "-c", "set -o pipefail && \ | |
wget -O sonarqube.zip https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-$SONAR_VERSION.zip && \ | |
unzip sonarqube.zip && \ | |
mv sonarqube-$SONAR_VERSION sonarqube"] | |
RUN ["/bin/bash", "-c", "set -o pipefail && \ | |
wget --no-check-certificate -O - https://download.tanukisoftware.com/wrapper/$WRAPPER_VERSION/wrapper-linux-armhf-32-$WRAPPER_VERSION.tar.gz | tar xzf - && \ | |
cp -r sonarqube/bin/linux-x86-64 sonarqube/bin/linux-armhf-32 && \ | |
cp wrapper-linux-armhf-32-$WRAPPER_VERSION/bin/wrapper sonarqube/bin/linux-armhf-32 && \ | |
cp wrapper-linux-armhf-32-$WRAPPER_VERSION/lib/libwrapper.so sonarqube/bin/linux-armhf-32/lib && \ | |
rm -f sonarqube/lib/jsw/wrapper-*.jar && \ | |
cp wrapper-linux-armhf-32-$WRAPPER_VERSION/lib/wrapper.jar sonarqube/lib/jsw/wrapper-$WRAPPER_VERSION.jar"] | |
RUN ["/bin/bash", "-c", "set -o pipefail && \ | |
rm -rf wrapper-linux-armhf-32-$WRAPPER_VERSION \ | |
sonarqube.zip \ | |
sonarqube/bin/win* \ | |
sonarqube/bin/mac* \ | |
sonarqube/bin/linux-x86*"] | |
RUN ["/bin/bash", "-c", "set -o pipefail && \ | |
groupadd --gid 500 sonarqube && \ | |
useradd --uid 500 -md /opt/sonarqube -s /bin/bash -g sonarqube sonarqube && \ | |
chown -R sonarqube:sonarqube sonarqube"] | |
# make it running on 32bit raspi | |
RUN rm -rf /opt/sonarqube/elasticsearch/lib/jna-4.5.1.jar | |
RUN wget -O /opt/sonarqube/elasticsearch/lib/jna-5.6.0.jar https://repo1.maven.org/maven2/net/java/dev/jna/jna/5.6.0/jna-5.6.0.jar | |
# https://stackoverflow.com/questions/44052358/can-i-disable-the-bootstrap-checks-in-elasticsearch-5-4 | |
RUN echo "discovery.type: single-node" | tee -a /opt/sonarqube/elasticsearch/config/elasticsearch.yml | |
# do NOT force checks | |
RUN echo "-Des.enforce.bootstrap.checks=false" | tee -a /opt/sonarqube/elasticsearch/config/jvm.options | |
# disable telemetry | |
RUN echo "sonar.telemetry.enable=false" | tee -a /opt/sonarqube/conf/sonar.properties | |
# disable system call filter on wrapper-level | |
RUN echo "sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false -Dbootstrap.memory_lock=false" | tee -a /opt/sonarqube/conf/sonar.properties | |
# Get software and prepare | |
USER sonarqube | |
WORKDIR /opt/sonarqube | |
# Port | |
EXPOSE 9000 | |
# Check health with status | |
HEALTHCHECK --interval=5m --timeout=5s \ | |
CMD ["bin/linux-armhf-32/sonar.sh", "status", "|", "grep", "-q", "SonarQube is running"] | |
# Command sonar.sh console / start | |
ENTRYPOINT ["bin/linux-armhf-32/sonar.sh"] | |
CMD ["console"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Place both files in the same folder and execute this:
Works on my personal Raspberry Pi 4 with 8GB RAM including a lot of other tools, so plenty room for more.