【问题标题】:Unable to set proxy in SonarQube running in OpenShift(OKD)无法在 OpenShift 中运行的 SonarQube 中设置代理(OKD)
【发布时间】:2018-09-18 21:46:09
【问题描述】:

我正在运行 sonarqube-openshift-docker 构建的 sonarqube。我需要设置 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 文件的某个地方传递它,但我不知道在哪里。

【问题讨论】:

    标签: sonarqube openshift okd


    【解决方案1】:

    AFAIK 您必须在单独的属性中提供 hostport

    http.proxyHost=
    http.proxyPort=
    

    查看 sonar.properties 文件here

    【讨论】:

    • 在该属性文件中设置它不会在容器重启后持续存在。所以我需要弄清楚如何在容器启动时传递它。
    • 你是对的,但是你可以像使用proxyHost 一样将配置文件中的每个属性作为系统属性传递。提供像-Dhttp.proxyHost=xxx -Dhttp.proxyPort=xxx 这样的端口和主机应该可以工作。你试过了吗?
    【解决方案2】:

    在 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"
    

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 1970-01-01
      • 2018-03-22
      • 1970-01-01
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      相关资源
      最近更新 更多