docker创建sonar
Dockerfile
FROM eclipse-temurin:17-jre ENV LANG='en_US.UTF-8' \ LANGUAGE='en_US:en' \ LC_ALL='en_US.UTF-8' # # SonarQube setup # ARG SONARQUBE_VERSION=9.9.0.65466 ARG SONARQUBE_ZIP_URL=https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${SONARQUBE_VERSION}.zip ENV JAVA_HOME='/opt/java/openjdk' \ SONARQUBE_HOME=/opt/sonarqube \ SONAR_VERSION="${SONARQUBE_VERSION}" \ SQ_DATA_DIR="/opt/sonarqube/data" \ SQ_EXTENSIONS_DIR="/opt/sonarqube/extensions" \ SQ_LOGS_DIR="/opt/sonarqube/logs" \ SQ_TEMP_DIR="/opt/sonarqube/temp" RUN set -eux; \ groupadd --system --gid 1000 sonarqube; \ useradd --system --uid 1000 --gid sonarqube sonarqube; \ apt-get update; \ apt-get install -y gnupg unzip curl bash fonts-dejavu; \ echo "networkaddress.cache.ttl=5" >> "${JAVA_HOME}/conf/security/java.security"; \ sed --in-place --expression="s?securerandom.source=file:/dev/random?securerandom.source=file:/dev/urandom?g" "${JAVA_HOME}/conf/security/java.security"; \ # pub 2048R/D26468DE 2015-05-25 # Key fingerprint = F118 2E81 C792 9289 21DB CAB4 CFCA 4A29 D264 68DE # uid sonarsource_deployer (Sonarsource Deployer) <infra@sonarsource.com> # sub 2048R/06855C1D 2015-05-25 for server in $(shuf -e hkps://keys.openpgp.org \ hkps://keyserver.ubuntu.com) ; do \ gpg --batch --keyserver "${server}" --recv-keys 679F1EE92B19609DE816FDE81DB198F93525EC1A && break || : ; \ done; \ mkdir --parents /opt; \ cd /opt; \ curl --fail --location --output sonarqube.zip --silent --show-error "${SONARQUBE_ZIP_URL}"; \ curl --fail --location --output sonarqube.zip.asc --silent --show-error "${SONARQUBE_ZIP_URL}.asc"; \ gpg --batch --verify sonarqube.zip.asc sonarqube.zip; \ unzip -q sonarqube.zip; \ mv "sonarqube-${SONARQUBE_VERSION}" sonarqube; \ rm sonarqube.zip*; \ rm -rf ${SONARQUBE_HOME}/bin/*; \ ln -s "${SONARQUBE_HOME}/lib/sonar-application-${SONARQUBE_VERSION}.jar" "${SONARQUBE_HOME}/lib/sonarqube.jar"; \ chmod -R 555 ${SONARQUBE_HOME}; \ chmod -R ugo+wrX "${SQ_DATA_DIR}" "${SQ_EXTENSIONS_DIR}" "${SQ_LOGS_DIR}" "${SQ_TEMP_DIR}"; \ apt-get remove -y gnupg unzip curl; \ rm -rf /var/lib/apt/lists/*; COPY entrypoint.sh ${SONARQUBE_HOME}/docker/ RUN chmod 775 ${SONARQUBE_HOME}/docker/entrypoint.sh WORKDIR ${SONARQUBE_HOME} EXPOSE 9000 USER sonarqube STOPSIGNAL SIGINT ENTRYPOINT ["/bin/bash", "/opt/sonarqube/docker/entrypoint.sh"]
entrypoint.sh
#!/bin/bash set -e DEFAULT_CMD=('/opt/java/openjdk/bin/java' '-jar' 'lib/sonarqube.jar' '-Dsonar.log.console=true') # this if will check if the first argument is a flag # but only works if all arguments require a hyphenated flag # -v; -SL; -f arg; etc will work, but not arg1 arg2 if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then set -- "${DEFAULT_CMD[@]}" "$@" fi exec "$@"
文件目录
终端执行命令
zhoupeng@zhoupengdeMacBook-Pro sonarqube >docker build -t mysonar:v1 .
zhoupeng@zhoupengdeMacBook-Pro sonarqube >docker run -d -p 19000:9000 -v /Users/zhoupeng/dev/docker/sonarqube/data:/opt/sonarqube/data -v /Users/zhoupeng/dev/docker/sonarqube/extensions:/opt/sonarqube/extensions -v /Users/zhoupeng/dev/docker/sonarqube/logs:/opt/sonarqube/logs -v /Users/zhoupeng/dev/docker/sonarqube/temp:/opt/sonarqube/temp --name mysonar mysonar:v1
本文来自博客园,作者:margo,转载请注明原文链接:https://www.cnblogs.com/ZMargo/articles/17141265.html