Как решить эту проблему с миграциями в yii2+docker?

Говорим о серверах, развёртывании, нагрузках, выборе и использовании разных технологий и продуктов
Ответить
ZaurK
Сообщения: 19
Зарегистрирован: 2015.01.21, 10:15

Как решить эту проблему с миграциями в yii2+docker?

Сообщение ZaurK » 2018.07.20, 11:16

Добрый день! Все хочу научиться разворачивать yii2 на docker и есть еще одна проблема, над которой мучаюсь неделю, уже мозг сломал, но не знаю как это исправить. При попытке запустить миграции php yii migrate я получаю ошибку:
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known'.
Кто-нибудь сталкивался с такой проблемой? Гугление мне ничего не дало, так как там везде описывается случай установки окружения на самом компьютере, обычно советуют заменить localhost на 127.0.0.1, у меня же это не работает. Вот мой файл docker-compose:

Код: Выделить всё

version: '2'
services:
  web:
    build:
      context: ./
      dockerfile: .docker/Dockerfile
      
    volumes:
      - ~/projects/advanced/.composer-docker/cache:/root/.composer/cache:delegated
      - ./:/app:delegated
    ports:
      - 8000:80
    links:
        - mysql
             
  mysql:
    image: mysql:5.7
    volumes:
        - ~/projects/advanced/.composer-docker/mysql:/var/lib/mysql
    environment:
        - "MYSQL_ROOT_PASSWORD=secret"
        - "MYSQL_USER=app"
        - "MYSQL_PASSWORD=secret"
        - "MYSQL_DATABASE=app"
    ports:
        - '33061:3306'
   
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    restart: always
    environment:
      PMA_HOST: mysql
      MYSQL_USERNAME: app
      MYSQL_ROOT_PASSWORD: secret
    ports:
     - 8888:80
    volumes:
     - /sessions
    links:
      - 'mysql:mysql'

А вот настройки базы:

Код: Выделить всё

 'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=mysql;dbname=app',
            'username' => 'app',
            'password' => 'secret',
            'charset' => 'utf8',
        ],

zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение zelenin » 2018.07.20, 20:57

version: "3.5" - поставьте посвежее версию, и удалите все links - в 3.* версии все контейнеры автоматически в одной сети.

Ну а все остальное вроде как надо прописано.

ZaurK
Сообщения: 19
Зарегистрирован: 2015.01.21, 10:15

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение ZaurK » 2018.07.21, 20:37

zelenin писал(а):
2018.07.20, 20:57
version: "3.5" - поставьте посвежее версию, и удалите все links - в 3.* версии все контейнеры автоматически в одной сети.

Ну а все остальное вроде как надо прописано.
Спасибо за ответ, установил последние версии докера (18.06.0-ce) и docker-compose (1.21.2), в файле docker-compose прописал версию 3.5 и убрал линки, пересобрал контейнер и образы, все работает как и прежде , НО при попытке запустить миграции получаю все ту же ошибку
Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known'

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

Аватара пользователя
ElisDN
Сообщения: 5265
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение ElisDN » 2018.07.21, 20:43

Адреса Докера доступны только внутри Докера. Так что запускайте всё внутри контейнера:

Код: Выделить всё

docker-compose exec web php yii migrate

ZaurK
Сообщения: 19
Зарегистрирован: 2015.01.21, 10:15

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение ZaurK » 2018.07.21, 21:27

ElisDN писал(а):
2018.07.21, 20:43
Адреса Докера доступны только внутри Докера. Так что запускайте всё внутри контейнера:

Код: Выделить всё

docker-compose exec web php yii migrate
Отлично, миграции заработали! Спасибо большое, Дмитрий. :D

Аватара пользователя
SiZE
Сообщения: 2690
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение SiZE » 2018.07.22, 21:30

Среда какая? )
в поиске работы

ZaurK
Сообщения: 19
Зарегистрирован: 2015.01.21, 10:15

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение ZaurK » 2018.08.09, 11:30

SiZE писал(а):
2018.07.22, 21:30
Среда какая? )
Ubuntu 18.04

uniqcle
Сообщения: 2
Зарегистрирован: 2019.04.24, 13:01

Re: Как решить эту проблему с миграциями в yii2+docker?

Сообщение uniqcle » 2019.07.05, 08:20

ZaurK писал(а):
2018.07.21, 21:27
ElisDN писал(а):
2018.07.21, 20:43
Адреса Докера доступны только внутри Докера. Так что запускайте всё внутри контейнера:

Код: Выделить всё

docker-compose exec web php yii migrate
Отлично, миграции заработали! Спасибо большое, Дмитрий. :D
А можно поподробней? Как эту команду запустить?

Ответить