0

我正在运行sonarqube 的 sonarqube-openshift-docker构建。我需要设置 Sonar 使用的代理,以便它可以访问 Marketplace 并下拉 Java 配置文件。

我尝试设置一个配置环境名称/值对的部署: JAVA_TOOLS_OPTIONS = "-Dhttp.proxyHost= -Dhttp.proxyPort= -Dhttps.proxyHost= -Dhttps.proxyPort="

我还尝试设置 HTTP_PROXY_HOST、HTTP_PROXY_PORT、HTTPS_PROXY_HOST、HTTPS_PROXY_PORT 名称/值对。

所有这些都可以通过容器端的环境,但 Sonar 没有使用这些。

更改容器中的 sonar.properties 文件不起作用,因为它不是持久的,并且在重新启动时会被踩踏。

我也尝试在这里添加它,但没有奏效。

template:
metadata:
  annotations:
    openshift.io/container.sonarqube.image.entrypoint: '["./bin/run.sh -Dhttp.proxyHost=<myProxy:port>"]'

我猜我需要将它传递到 YAML 文件中的某个位置,但我不知道在哪里。

4

2 回答 2

0

在 OpenShift 上运行 SonarQube,我使用了一个包含 ConfigMap 设置 HTTP 代理配置的模板。

apiVersion: v1
kind: Template
metadata:
  name: sonarqube-template
objects:
[...]
- apiVersion: v1
  kind: ConfigMap
  metadata:
    name: ${APPLICATION_NAME}-conf
  data:
    sonar.properties: |-
      http.nonProxyHosts=${PROXY_EXCLUDE}
      http.proxyHost=${PROXY_HOST}
      http.proxyPort=${PROXY_PORT}
      https.proxyHost=${PROXY_HOST}
      https.proxyPort=${PROXY_PORT}
    wrapper.conf: |-
      wrapper.java.command=java
      wrapper.java.additional.1=-Dsonar.wrapped=true
      wrapper.java.additional.2=-Djava.awt.headless=true
[...]
- apiVersion: v1
  kind: DeploymentConfig
[...]
         volumeMounts:
          - mountPath: /opt/sonarqube/conf
            name: ${APPLICATION_NAME}-conf
[....]
    volumes:
    - configMap:
        defaultMode: 420
        name: ${APPLICATION_NAME}-conf
[...]
parameters:
- name: APPLICATION_NAME
  value: sonarqube
- name: PROXY_HOST
  value: proxy.example.com
- name: PROXY_PORT
  value: "3128"
- name: PROXY_EXCLUDE
  value: "*.internal.domain.example.com"
于 2018-10-23T10:17:13.980 回答
0

AFAIK 您必须在单独的属性中提供主机端口:

http.proxyHost=
http.proxyPort=

在此处查看 sonar.properties 文件。

于 2018-09-21T08:46:01.937 回答