Yii2 basic и docker

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

Yii2 basic и docker

Сообщение h_elena »

Есть 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
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 basic и docker

Сообщение zelenin »

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

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

Если расскажите зачем вам два разных конфига, расскажу как лучше сделать.
h_elena
Сообщения: 87
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena »

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

Re: Yii2 basic и docker

Сообщение zelenin »

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
Сообщения: 87
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena »

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
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2 basic и docker

Сообщение zelenin »

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
Сообщения: 87
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena »

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

Re: Yii2 basic и docker

Сообщение zelenin »

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
Сообщения: 87
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena »

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

Re: Yii2 basic и docker

Сообщение zelenin »

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
Сообщения: 87
Зарегистрирован: 2016.03.23, 14:07

Re: Yii2 basic и docker

Сообщение h_elena »

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