Как создать образ докера, который требует других образов / портов? - PullRequest
0 голосов
/ 23 сентября 2019

Я хочу создать образ докера, который содержит мое приложение.Процесс сборки (этап тестирования) требует базы данных.когда я создаю приложение (без образа докера), я просто запускаю базу данных локально:

docker run -ti --rm --name postgres -p 5432:5432 postgres:10.9-alpine

, а затем я создаю приложение.но когда я создаю приложение из моего файла Docker, оно не может подключиться к локальной базе данных.

как мне разрешить моей сборке докера видеть БД?я должен использовать docker-compose для создания моего приложения?или это может как-то подключиться к моей локальной базе данных?

1 Ответ

0 голосов
/ 23 сентября 2019

Вы можете сделать это двумя способами.

  • устаревшее соединение с докером
  • Сеть Docker-compose

--link <name or id>

Таким образом, вы можете связываться с БД следующим образом

docker run -d -P --name web --link db:db  your_appp

Теперь ваше приложение может подключаться к БД, используя имя хоста db.

Теперь

Предупреждение:Флаг --link является устаревшей функцией Docker.Это может в конечном итоге быть удалено.Если вам абсолютно не нужно продолжать его использовать.

https://docs.docker.com/network/links/

Docker-compose:

version: "3.7"
services:
  app:
    build: .
    depends_on:
      - db
  redis:
    image: redis
  db:
    image: postgres

В приведенном выше случае можно связаться с БД с помощью имени хоста db.

Если вы хотите подключиться во время сборки Dockerfile, вам нужно использовать IP-адрес хоста, а также опубликовать порт БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...