Как настроить Docker Compose Containers с помощью network_mode и depen_on - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь настроить docker-compose так, чтобы я мог получить доступ к MySQL контейнеру (и, вероятно, redis и другим) из localhost или 127.0.0.1 из моего основного app контейнера.Это сделано для того, чтобы имитировать настройки на моем хостинге, где База данных является отдельным сервером, но все еще доступна для localhost.

. Я попытался использовать network_mode: services:app в mysql и phpmyadmin сервисах, чтобы получить то, что я хотелно он конфликтует с depends_on из-за круговой зависимости .Мне также нужны зависимости для запуска с контейнером app.

Есть ли способ настроить это с docker-compose или настроить переадресацию на app Dockerfile?

My docker-compose.yml

version: '3'
services:
    app:
      container_name: app
      build: .
      volumes:
        - .:/var/project
      working_dir: /var/project
      ports:
        - "8080:80"
      depends_on:
        - mysql
        - phpmyadmin

    composer:
      restart: 'no'
      image: composer:latest
      command: install --ignore-platform-reqs
      volumes:
        - .:/var/project
      working_dir: /var/project

    node:
      restart: 'no'
      image: node:8
      command: npm install
      volumes:
        - .:/var/project
      working_dir: /var/project

    mysql:
      image: mysql:5.7
      container_name: mysql
      network_mode: services:app
      environment:
          MYSQL_DATABASE: app_db
          MYSQL_USER: app
          MYSQL_PASSWORD: app
          MYSQL_RANDOM_ROOT_PASSWORD: "true"

    phpmyadmin:
      image: phpmyadmin/phpmyadmin
      container_name: phpmyadmin
      network_mode: services:app
      restart: always
      environment:
        PMA_HOST: mysql
        PMA_PORT: 3306
        PMA_USER: app
        PMA_PASSWORD: app
...