【问题标题】:JetBrains/Teamtools in docker container "Could not listen on address 0.0.0.0 and port 443"Docker 容器中的 JetBrains/Teamtools “无法侦听地址 0.0.0.0 和端口 443”
【发布时间】:2018-06-29 15:11:58
【问题描述】:

问题

我正在尝试在 docker 容器中设置 JetBrains Hub、Youtrack、Upsource 和 Teamcity,并将它们配置为在它们自己的 IP (macvlan) 上可用,默认端口 80 重定向到 HTTPS 的 443 和 443(所以端口号不会显示在浏览器中)。

但是,如果我这样做,我会得到:

无法监听地址 0.0.0.0 和端口 443

将 teamtools 保留在默认端口 8080 和 8443 上也可以,或者为它们提供超过 2000 的端口似乎也可以。

我检查了fuser 443/tcpnetstat -tulpn,但端口 80 或 443 上没有运行任何东西。(必须为容器中的那些安装包)

我尝试将监听地址设置为网卡 IP 或 172.0.0.1,但也被拒绝:

root@teamtools [ /opt/teamtools ]# docker run --rm -it \
    -v /opt/hub/data:/opt/hub/data \
    -v /opt/hub/conf:/opt/hub/conf \
    -v /opt/hub/logs:/opt/hub/logs \
    -v /opt/hub/backups:/opt/hub/backups \
    jetbrains/hub:2018.2.9840 \
    configure --listen-address=192.168.1.211
* Configuring JetBrains Hub 2018.2
* Setting property 'listen-address' to '192.168.1.211' from arguments
[APP-WRAPPER] Failed to configure Hub: java.util.concurrent.ExecutionException: com.jetbrains.bundle.exceptions.BadConfigurationException: Could not listen on address {192.168.1.211} . Please specify another listen address in property listen-address

问题:

  1. 为什么不能设置80和443端口?
  2. 为什么它对端口有效 2000?
  3. 如何在没有反向代理的情况下完成这项工作? (反向代理还有很多其他问题,我试图通过这种设置避免这些问题)

设置

ESXi 6.7 Host
  - vSwitch0 (Allow promiscuous mode:   Yes)
     - port group: VM Netork (Allow promiscuous mode:   No)
       - other VMs
     - port group: Promiscuous Ports (Allow promiscuous mode:   Yes)
       - Teamtools VM (Photon OS 2.0, IP: 192.168.1.210)
         - firewall based on: https://unrouted.io/2017/08/15/docker-firewall/
         - docker/docker-compose
           - hub                         (IP: 192.168.1.211:80/443)
           - youtrack                    (IP: 192.168.1.212:80/443)
           - upsource                    (IP: 192.168.1.213:80/443)
           - teamcity-server             (IP: 192.168.1.214:80/443)
           - teamcity_db (MariaDB 10.3)  (IP: 192.168.1.215:3306)

docker-compose.yml

version: '2'
networks:
  macnet:
    driver: macvlan
    driver_opts:
      parent: eth0
    ipam:
      config:
        - subnet: 192.168.1.0/24
          gateway: 192.168.1.1 

services:
  hub:
    # set a custom container name so no more than one container can be created from this config
    container_name: hub
    image: "jetbrains/hub:2018.2.9840"
    restart: unless-stopped
    volumes:
      - /opt/hub/data:/opt/hub/data
      - /opt/hub/conf:/opt/hub/conf
      - /opt/hub/logs:/opt/hub/logs
      - /opt/hub/backups:/opt/hub/backups
      - /opt/teamtools:/opt/teamtools
    expose:
      - "80"
      - "443"
      - "8080"
      - "8443"
    networks:
      macnet:
        ipv4_address: 192.168.1.211
    domainname: office.mydomain.com
    hostname: hub
    environment:
      - "JAVA_OPTS=-J-Djavax.net.ssl.trustStore=/opt/teamtools/certs/keyStore.p12 -J-Djavax.net.ssl.trustStorePassword=xxxxxxxxxxxxxx"
...

【问题讨论】:

  • 您在使用反向代理时遇到了哪些其他问题?也许使用 jwilder 的 nginx-proxy 可以防止这些问题。我没有使用 ESXi 或特定的网络设置,所以它可能对你没有用。无论如何,我已经在hub-support.jetbrains.com/hc/en-us/community/posts/… 上添加了一个起点配置文件,以防你想尝试一下。

标签: docker https jetbrains-hub macvlan


【解决方案1】:

Upsource 由非 root 用户 jetbrans 运行。 https://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多