У меня есть приложение, которое состоит из сканера и MySQL дБ. Я хочу go через VPN, когда я выполняю свой сканер, но затем не использую VPN, когда я подключаюсь к моей БД. Мне удалось заставить мой контейнер приложений отправлять все трафики c через мой VPN-контейнер, но теперь я не могу подключиться к своей БД, расположенной на локальном хосте. Я попытался использовать адреса хостов localhost
, 127.0.0.1
и имя контейнера базы данных, но ни один из них не работает.
Как мне маршрутизировать некоторые traffi c через VPN контейнер, а некоторые траффики c просто нормально?
Вот мой docker файл для создания:
version: '3.7'
services:
db:
image: mysql:8
restart: always
environment:
MYSQL_DATABASE: my_db
MYSQL_USER: root
MYSQL_ROOT_PASSWORD: pw
MYSQL_PASSWORD: pw
MYSQL_PORT: 3308
ports:
- "3308:3306"
command: --default-authentication-plugin=mysql_native_password
vpn:
build:
context: ./
dockerfile: Dockerfile-openvpn-dev
restart: always
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
volumes:
- ./openvpn:/vpn
command: openvpn --config /vpn/config.ovpn --auth-user-pass /vpn/client.pwd --auth-nocache
app:
build:
context: ./
dockerfile: Dockerfile-crawler-dev
environment:
MYSQL_DATABASE: my_db
MYSQL_USER: root
MYSQL_ROOT_PASSWORD: pw
MYSQL_PASSWORD: pw
MYSQL_HOST: db
MYSQL_PORT: 3306
network_mode: service:vpn