Как ссылаться на IP-адрес не в докере внутри контейнера? - PullRequest
0 голосов
/ 29 октября 2018

При использовании файла docker-compose я могу сделать ссылку на контейнер по его имени из других контейнеров.

version: '3'
network:
  mynet:
    external: false
services:
  database:
    image: mariadb
    network:
    - mynet
  application:
    build: .
    network:
    - mynet

Вышеуказанное означает, что я могу ссылаться на базу данных следующим образом: database:3306 из контейнера application.

Могу ли я добавить ip-адрес не в Docker, на который можно ссылаться таким же образом? Скажем, мой database сервер не управляется докером, но я хочу ссылаться на него внутри application таким же образом?

links устарела, я знаю, но я хотел бы иметь возможность сделать что-то вроде:

услуги: приложение: построить: ссылки по теме: - "127.0.0.10:database"

Возможно ли что-то подобное без links?

1 Ответ

0 голосов
/ 29 октября 2018

Я обычно делаю это через переменные окружения, которые ищет приложение. Например, код приложения может использовать переменную среды с именем DATABASE_URL, и тогда вам просто нужно убедиться, что она установлена ​​при запуске образа Docker. Используя указанный выше docker-compose.yml файл в качестве базы, вы можете передать URL базы данных следующим образом:

version: '3'
network:
  mynet:
    external: false
services:
  database:
    image: mariadb
    network:
    - mynet
  application:
    build: .
    network:
    - mynet
    environment:
      DATABASE_URL: "mysql://username:password@my-database-url:3306"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...