вызвать докер контейнер по его имени - PullRequest
0 голосов
/ 06 марта 2019

Я хотел бы знать, возможно ли использовать имя моего док-контейнера в качестве хоста вместо IP.

Позвольте мне объяснить, вот мой файл docker-compose:

version : "3"
  services:
    pandacola-logger:
        build: ./
        networks:
          - logger_db
        volumes: 
          - "./:/app"
        ports:
          - 8060:8060
          - 10060:10060
        command: npm run dev

      logger-mysql:
        image: mysql
        networks:
          - logger_db
        command: --default-authentication-plugin=mysql_native_password
        environment:
          MYSQL_ROOT_PASSWORD: Carotte1988-
          MYSQL_DATABASE: logger
          MYSQL_USER: logger-user
          MYSQL_PASSWORD: PandaCola-
        ports:
          - 3306:3306

      adminer:
        networks:
          - logger_db
        image: adminer
        restart: always
        ports:
          - 8090:8090

    networks:
      logger_db: {}

Извините, что намерение немного грязное

Я бы хотел установить имя моего logger-mysql в файле .env моего веб-сервиса (pandacola-logger) вместо его IPадрес

вот файл .env

HOST=0.0.0.0
PORT=8060
NODE_ENV=development
APP_NAME=AdonisJs
APP_URL=http://${HOST}:${PORT}
CACHE_VIEWS=false
APP_KEY=Qs1GxZrmQf18YZ9V42FWUUnnxLfPetca
DB_CONNECTION=mysql
DB_HOST=0.0.0.0  <---- here's where I want to use my container's name
DB_PORT=3306
DB_USER=logger-user
DB_PASSWORD=PandaCola-
DB_DATABASE=logger
HASH_DRIVER=bcrypt

Если вы можете сказать мне сначала, если это возможно, а затем, как это сделать, это было бы прекрасно.

1 Ответ

1 голос
/ 06 марта 2019

По умолчанию Compose настраивает единую сеть для вашего приложения.Каждый контейнер для службы присоединяется к сети по умолчанию и доступен другим контейнерам в этой сети и может быть обнаружен ими с именем хоста, идентичным имени контейнера.

Ссылка

Например:

version: '2.2'
services:
  redis:
    image: redis
    container_name: cache
    expose:
      - 6379
  app:
    build: ./
    volumes:
      - ./:/var/www/app
    ports:
      - 7731:80
    environment:
      - REDIS_URL=redis://cache
      - NODE_ENV=development
      - PORT=80
    command:
      sh -c 'npm i && node server.js'

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