Yii2 basic и docker

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
h_elena
Сообщения: 59
Зарегистрирован: 2016.03.23, 14:07

Yii2 basic и docker

Сообщение h_elena » 2018.06.12, 21:32

Есть 2 образа:

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

version: '2'
services:
  php:
    build: ./
    restart: always
    volumes:
      - ./:/app:delegated
    ports:
      - '8000:80'
    network_mode: test

  db_host:
    image: postgres:10.3-alpine
    #image: postgres:9.6
    restart: always
    ports:
      - "5432:5432"
    volumes:
      - ./docker-entrypoint:/docker-entrypoint-initdb.d
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    network_mode: test
и

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

version: '2'
services:
  php:
    build: ../common/docker/
    restart: always
    volumes:
      - ~/.composer-docker/cache:/root/.composer/cache:delegated
      - ./:/app:delegated
    ports:
      - '8001:80'
    network_mode: test

  redis:
    image: redis:4.0.9-alpine
    command: redis-server /etc/redis/conf.d/redis.conf --requirepass pass
    ports:
      - "6379"
    volumes:
      - ./docker/redis-client-data:/data
      - ./docker/redis-conf:/etc/redis/conf.d
    network_mode: test
И файлы докера везде одинаковые

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

FROM yiisoftware/yii2-php:7.1-apache

# Apache modules
RUN a2enmod rewrite
По отдельности они работают и доступны по локалхосту с соответствующими портами. Но проблема возникает, когда идет обращение от второго образа к первому. Т.е. http://имя_образа/ выдает 400 ошибку. В логах первого видно, что этот контейнер видит запрос, но он его не распознает.
Проблема в том, что у других всё работает. А вот у меня на убунте 16.04 развернутой с нуля не работает. Я уже и php7.1 отдельно накатила и апач и постгре. Чего не хватает не пойму.

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

Re: Yii2 basic и docker

Сообщение zelenin » 2018.06.12, 22:18

это не два образа, а два конфига из двух контейнеров.
имя_образа - это id контейнера.
Следите за терминологией, чтобы не разводить непонимание в комментах.

по id контейнера можно обращаться только в рамках одной сети. Одна сеть по умолчанию только в рамках одного конфига. То есть два конфига - это две параллельных сети.

Если расскажите зачем вам два разных конфига, расскажу как лучше сделать.

h_elena
Сообщения: 59
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena » 2018.06.13, 05:21

zelenin писал(а):
2018.06.12, 22:18
это не два образа, а два конфига из двух контейнеров.
На другом сайте писала про контейнеры, меня поправили, типа это не контейнеры.
zelenin писал(а):
2018.06.12, 22:18
имя_образа - это id контейнера.
Не, id контейнера это одно, а имя другое. Обращение идет именно по имени -NAME.
Есть проект -фронт и бек и они под докером в разных контейнерах. Бек на yii2. Мне нужно туда curl запросы слать. Это рабочие конфиги. Но вот у меня они не работают.

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

Re: Yii2 basic и docker

Сообщение zelenin » 2018.06.13, 11:14

h_elena писал(а):
2018.06.13, 05:21
На другом сайте писала про контейнеры, меня поправили, типа это не контейнеры.
внутри каждого конфига у вас описаны контейнеры, создаваемые из образов.

h_elena писал(а):
2018.06.13, 05:21
Не, id контейнера это одно, а имя другое. Обращение идет именно по имени -NAME.
так, я чуть спутал. container id - это длинный идентификатор. Я имел в виду service id (php, redis, db_host). Вы тоже это имеете в виду? name - это другое, отдельно указываемое.
h_elena писал(а):
2018.06.13, 05:21
Есть проект -фронт и бек и они под докером в разных контейнерах. Бек на yii2. Мне нужно туда curl запросы слать. Это рабочие конфиги. Но вот у меня они не работают.
вы либо обращаетесь через внешнюю сеть как к любому внешнему сервису либо обращаетесь в рамках одной сети по service_id.
Из какого контейнера куда и как вы обращаетесь?

h_elena
Сообщения: 59
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena » 2018.06.13, 12:23

zelenin писал(а):
2018.06.13, 11:14
Я имел в виду service id (php, redis, db_host). Вы тоже это имеете в виду? name - это другое, отдельно указываемое.
Если в консоли забить docker ps, то появится таблица и последний столбец будет с именем NAMES. Вот по этому имени я и стучусь.
zelenin писал(а):
2018.06.13, 11:14
вы либо обращаетесь через внешнюю сеть как к любому внешнему сервису либо обращаетесь в рамках одной сети по service_id.
Из какого контейнера куда и как вы обращаетесь?
Я из одного контейнера обращаюсь к другому.

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

Re: Yii2 basic и docker

Сообщение zelenin » 2018.06.13, 12:34

h_elena писал(а):
2018.06.13, 12:23
zelenin писал(а):
2018.06.13, 11:14
Я имел в виду service id (php, redis, db_host). Вы тоже это имеете в виду? name - это другое, отдельно указываемое.
Если в консоли забить docker ps, то появится таблица и последний столбец будет с именем NAMES. Вот по этому имени я и стучусь.
zelenin писал(а):
2018.06.13, 11:14
вы либо обращаетесь через внешнюю сеть как к любому внешнему сервису либо обращаетесь в рамках одной сети по service_id.
Из какого контейнера куда и как вы обращаетесь?
Я из одного контейнера обращаюсь к другому.
контейнеры из разных конфигов по умолчанию находятся в разных сетях. К ним нельзя обращаться по имени.

h_elena
Сообщения: 59
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena » 2018.06.13, 12:57

zelenin писал(а):
2018.06.13, 12:34
контейнеры из разных конфигов по умолчанию находятся в разных сетях. К ним нельзя обращаться по имени.
Так ведь это работает. Люди запускают.
Но не в этом дело. Как мне тогда обращаться? По локалхосту и номеру порта не работает. Хотя постмен работает для такого случая.

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

Re: Yii2 basic и docker

Сообщение zelenin » 2018.06.13, 13:08

h_elena писал(а):
2018.06.13, 12:57
zelenin писал(а):
2018.06.13, 12:34
контейнеры из разных конфигов по умолчанию находятся в разных сетях. К ним нельзя обращаться по имени.
Так ведь это работает. Люди запускают.
запускают. а обращаться могут, только если поместят в одну сеть. Пятый раз пишу.
h_elena писал(а):
2018.06.13, 12:57
По локалхосту и номеру порта не работает. Хотя постмен работает для такого случая.
localhost - это то, что внутри контейнера. два разных контейнера - два разных localhost. из постмена можете обращаться, т.к. порты обоих контейнеров проброшены на хостовую машину, и это третий локалхост, третий контекст.

Как? я же написал - в одну сеть объединить два конфига.
Либо обращаться по ip/порту хостовой машины.

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

h_elena
Сообщения: 59
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena » 2018.06.13, 13:14

zelenin писал(а):
2018.06.13, 13:08
Как? я же написал - в одну сеть объединить два конфига.
Они идут как 2 независимые системы.
zelenin писал(а):
2018.06.13, 13:08
Либо обращаться по ip/порту хостовой машины.
Делала, идет зависание и окончание по таймауту.
zelenin писал(а):
2018.06.13, 13:08
либо используйте как две независимых системы со всеми вытекающими.
Здесь можно поконкретнее. Как можно в этом случае к ним обращаться или что нужно изменить в конфигах?

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

Re: Yii2 basic и docker

Сообщение zelenin » 2018.06.13, 13:22

h_elena писал(а):
2018.06.13, 13:14
zelenin писал(а):
2018.06.13, 13:08
Как? я же написал - в одну сеть объединить два конфига.
Они идут как 2 независимые системы.
а сеть может быть одна, если на одной машине запускаете
h_elena писал(а):
2018.06.13, 13:14
Здесь можно поконкретнее. Как можно в этом случае к ним обращаться или что нужно изменить в конфигах?
если это две независимых системы, то не меняйте ничего в конфиге, а обращайтесь с этим как будто это сторонний сервер.
Последний раз редактировалось zelenin 2018.06.13, 13:53, всего редактировалось 1 раз.

h_elena
Сообщения: 59
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena » 2018.06.13, 13:28

zelenin писал(а):
2018.06.13, 13:22
а есть может быть одна, если на одной машине запукаете
Запускаю на одной машине.
zelenin писал(а):
2018.06.13, 13:22
если это две независимых системы, то не меняйте ничего в конфиге, а обращайтесь с этим как будто это сторонний сервер.
Мне нужно понять как обращаться. Если обращаюсь http://имя_контейнера, то я до второго контейнера достукиваюь, но он отдает 400. И в логах второго контейнера я вижу, что я как бы достучалась. Но как я поняла он не понял куда меня направить.

Ответить