Как подключить контейнер приложения к контейнеру mysql - PullRequest
0 голосов
/ 14 октября 2019

У меня есть служба приложений и служба MySQL, но я не могу соединить два контейнера, и она продолжает выдавать мне эту ошибку jango.db.utils.OperationalError: (2002, "Can't connect to MySQL server on '127.0.0.1' (115)")

Я включил ссылки в службу приложений, но ничего

Мой контейнер MySQL работает нормально, и даже я могу войти в контейнер MySQL.

Вот снимок сервисов:

CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS                      PORTS                              NAMES
cc26d09a81d1        gmasmatrix_worker:latest        "/entrypoint.sh /sta…"   17 seconds ago      Exited (1) 11 seconds ago                                      gmasmatrix_celeryworker_1
749f23c37b16        gmasmatrix_application:latest   "/entrypoint.sh /sta…"   18 seconds ago      Exited (1) 9 seconds ago                                       gmasmatrix_application_1
666029ad063a        gmasmatrix_flower               "/entrypoint.sh /sta…"   18 seconds ago      Exited (1) 10 seconds ago                                      gmasmatrix_flower_1
50ac0497e66b        mysql:5.7.10                    "/entrypoint.sh mysq…"   21 seconds ago      Up 17 seconds               0.0.0.0:3306->3306/tcp             gmasmatrix_db_1
669fbbe0a81d        mailhog/mailhog:v1.0.0          "MailHog"                21 seconds ago      Up 18 seconds               1025/tcp, 0.0.0.0:8025->8025/tcp   gmasmatrix_mailhog_1
235a46c8d453        redis:5.0                       "docker-entrypoint.s…"   21 seconds ago      Up 17 seconds               6379/tcp                           gmasmatrix_redis_1

Файл Docker-compose

version: '2'

services:

  application: &application
    image: gmasmatrix_application:latest
    command: /start.sh
    volumes:
    - .:/app
#    env_file:
#    - .env
    ports:
    - 8000:8000
#    cpu_shares: 874
#    mem_limit: 1610612736
#    mem_reservation: 1610612736
    build:
      context: ./
      dockerfile: ./compose/local/application/Dockerfile
      args:
      - GMAS_ENV_TYPE=local
    links:
      - "db"


  celeryworker:
    <<: *application
    image: gmasmatrix_worker:latest
    depends_on:
    - redis
    - mailhog
    ports: []
    command: /start-celeryworker
    links:
      - "db"


  flower:
    <<: *application
    image: gmasmatrix_flower
    ports:
    - "5555:5555"
    command: /start-flower
    links:
      - "db"

  mailhog:
    image: mailhog/mailhog:v1.0.0
    ports:
    - "8025:8025"

  redis:
    image: redis:5.0

  db:
    image: mysql:5.7.10
    environment:
      MYSQL_DATABASE: gmas_mkt
      MYSQL_ROOT_PASSWORD: pulkit1607
    ports:
    - "3306:3306"
``

1 Ответ

0 голосов
/ 14 октября 2019

Ваше приложение пытается подключиться к 127.0.0.1 - что в докере указывает на сам контейнер приложения.

Вместо этого вы должны использовать IP-адрес контейнера db. Вы можете использовать встроенную службу Docker DNS для этого. В конфигурации вашего приложения используйте db (имя контейнера mysql) в качестве хоста для подключения вместо localhost или 127.0.0.1

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