Назад | Перейти на главную страницу

Docker-compose, открывающий порт при повторном использовании сети

Я пытаюсь заставить набор контейнеров работать вместе с OpenVPN-клиентом. я использовал этот в качестве шаблона и построить свой собственный контейнер (на Raspberry Pi, поэтому я не могу сразу использовать готовый образ). Пока это работает как шарм, используя конфигурацию docker-compose ниже, я создаю VPN-соединение в одном контейнере и подключаюсь к нему со вторым контейнером. Второй контейнер также использует VPN как следует (проверено путем получения общедоступного IP-адреса с помощью docker exec).

Проблема в том, что у второго контейнера есть веб-интерфейс, и обычно я просто открываю его порт для публики и получаю к нему доступ. в этом случае это невозможно. dperson пишет, что вам нужно использовать обратный прокси-сервер nginx для доступа к нему, но это кажется слишком сложным, мне не нужен обратный прокси для пересылки определенного URL-адреса на порт, мне нужно только экспортировать порт. Или пробросить порт с openvpn-client на другой сервис. Кроме того - что, если этот порт не HTTP / S, а - сервер openSSH или что-то в этом роде - тогда я все равно потерялся с обратным прокси-сервером nginx.

просто - я не могу заставить его работать, и я не знаю, как правильно это настроить.

Дополнительная информация: я думаю, мне не нужно указывать сеть "vpn", но я думаю, что это тоже не вредит.

docker-compose.yml

version: "2"
networks:
  vpn:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 10.42.42.0/24
          gateway: 10.42.42.1
services:
  openvpn-client:
    image: openvpn-client
    # ... more configuration here ...
    cap_add:
      - net_admin
    devices:
      - /dev/net/tun
    networks:
      vpn:
        ipv4_address: 10.42.42.2
    # ports exposing, those are the ports from other-service
    ports:
      - 1234:1234
    restart: unless-stopped
  other-service:
    # ... some other settings ...
    network_mode: "service:openvpn-client"
# ports does not work with network_mode service
#    ports:
#      - 1234:1234
    depends_on:
      - openvpn-client
    restart: unless-stopped