Как получить доступ к другому идентификатору контейнера внутри docker -compose.yml? - PullRequest
0 голосов
/ 23 января 2020

У меня есть ситуация, в которой у меня есть файл docker -compose.yml следующим образом

version: '3'

services:

  database:
    image: mcr.microsoft.com/mssql/server:2017-latest
    environment:
      - SA_PASSWORD=king@1234
      - ACCEPT_EULA=Y
    ports:
      - "8110:1433"
    container_name: app_db_con

  api:
    build:
      context: /home/shubham/Employee/EmployeeBackEnd/
    image: app-api:dev
    ports:
      - "8111:5001"
    container_name: app_api_con
    depends_on:
      - database

  web:
    build:
      context: /home/shubham/Employee/EmployeeFrontEnd/
    image: app-ui:dev
    ports:
      - "8112:80"
    container_name: app_web_con
    depends_on:
      - database
      - api

Я хочу получить доступ к идентификатору контейнера базы данных *1004* внутри моего api контейнер в качестве аргумента. Например, аргументы в коде ниже:

  api:
    build:
      context: /home/shubham/Employee/EmployeeBackEnd/
    image: app-api:dev
    args:
      - Database_Server: database_container_id
    ports:
      - "8111:5001"
    container_name: app_api_con
    depends_on:
      - database

Я не уверен, как этого добиться. Пожалуйста, помогите, если есть другой подход.

Спасибо

1 Ответ

1 голос
/ 23 января 2020

По умолчанию при docker -compose каждый контейнер доступен по имени службы, определенному в файле compose.

Например, в вашем случае, если вы хотите получить доступ к контейнеру database от api, вам просто нужно будет использовать его имя. Вы можете попробовать это с помощью этой команды:

$ docker container exec -ti [your_api_container] ping database

Для получения дополнительной информации о работе в сети в compose, вы можете взглянуть на официальный do c.

...