Как настроить dns-proxy-сервер в docker -создать привязку к IP-адресу не по умолчанию - PullRequest
0 голосов
/ 25 марта 2020

Я использую mageddo/dns-proxy-server в своей среде RoR для предоставления разрешения DNS для контейнеров docker. Это работает как удовольствие, пока я не подключусь к компании VPN. К сожалению, dns-proxy-сервер связывается с портом 172.17.0.2, который конфликтует с VPN. Мои другие контейнеры используют другой диапазон IP-адресов. Вот файл docker -compose:

version: '3.7'

services:
  jet-db:
    image: postgres:latest
    hostname: jet-db
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: '*'
      POSTGRES_PASSWORD: '*'
    volumes:
      - database_data:/var/lib/postgresql/data

  sidekiq:
    build:
      context: .
      dockerfile: docker/app/ruby-on-rails.dockerfile
    command: bundle exec sidekiq -v
    environment:
      POSTGRES_URL: 'postgres://db/'
      RAILS_CACHE_URL: 'redis://rails-cache:6380/'
    links:
      - jet-db
      - sidekiq-cache
      - rails-cache
    volumes:
      - '.:/app'

  sidekiq-cache:
    image: redis
    hostname: sidekiq-cache
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - 6379:6379
    volumes:
      - ./docker/redis/sidekiq.conf:/usr/local/etc/redis/redis.conf

  rails-cache:
    image: redis
    hostname: rails-cache
    command: redis-server /usr/local/etc/redis/redis.conf
    ports:
      - 6380:6380
    volumes:
      - ./docker/redis/rails-cache.conf:/usr/local/etc/redis/redis.conf

  mailcatcher:
    image: zolweb/docker-mailcatcher:latest
    ports:
      - "1025:1025"
      - "1080:1080"

  dns-proxy-server:
    image: defreitas/dns-proxy-server:latest
    hostname: dns.mageddo
    volumes:
      - /opt/dns-proxy-server/conf:/app/conf
      - /var/run/docker.sock:/var/run/docker.sock
      - /etc/resolv.conf:/etc/resolv.conf
    network_mode: bridge
    ports:
      - "5380:5380"

volumes:
  database_data:
    driver: local
  tmp:
    driver: local

networks:
  default:
    driver: bridge
    ipam:
      config:
        - subnet: 169.10.0.0/16

Вот как выглядит /etc/resolv.conf, когда прокси-сервер работает нормально без VPN:

:# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

# nameserver 8.8.8.8 # dps-comment
# nameserver 127.0.0.53 # dps-comment
nameserver 172.17.0.2 # dps-entry

Я интересно, есть ли способ заставить dns-proxy-сервер связываться с другим IP-адресом, чтобы избежать конфликта с VPN.

...