JetBrains / Teamtools в док-контейнере "Не удалось прослушать адрес 0.0.0.0 и порт 443" - PullRequest
0 голосов
/ 29 июня 2018

Задача

Я пытаюсь настроить JetBrains Hub, Youtrack, Upsource и Teamcity в Docker-контейнере и настроить каждый доступный на их собственный IP (macvlan) через порты 80 по умолчанию, перенаправленные на 443 и 443 для HTTPS (поэтому номера портов не отображаются в браузере).

Однако, если я это сделаю, я получу:

Не удалось прослушать адрес 0.0.0.0 и порт 443

Оставление teamtools на их портах по умолчанию 8080 и 8443 работает или предоставление им портов более 2000, похоже, также работает.

Я проверил с помощью fuser 443/tcp и netstat -tulpn, но на порте 80 или 443 ничего не работает. (пришлось установить пакеты для тех, кто находится в контейнере)

Я попытался установить адрес прослушивания для IP-адреса NIC или 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)

докер-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"
...

1 Ответ

0 голосов
/ 03 августа 2018

Upsource запущен пользователем jetbrans, который не является root. https://www.w3.org/Daemon/User/Installation/PrivilegedPorts.html

...