Страница 1 из 1
Yii2 basic и docker
Добавлено: 2018.06.12, 21:32
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 отдельно накатила и апач и постгре. Чего не хватает не пойму.
Re: Yii2 basic и docker
Добавлено: 2018.06.12, 22:18
zelenin
это не два образа, а два конфига из двух контейнеров.
имя_образа - это id контейнера.
Следите за терминологией, чтобы не разводить непонимание в комментах.
по id контейнера можно обращаться только в рамках одной сети. Одна сеть по умолчанию только в рамках одного конфига. То есть два конфига - это две параллельных сети.
Если расскажите зачем вам два разных конфига, расскажу как лучше сделать.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 05:21
h_elena
zelenin писал(а): ↑2018.06.12, 22:18
это не два образа, а два конфига из двух контейнеров.
На другом сайте писала про контейнеры, меня поправили, типа это не контейнеры.
zelenin писал(а): ↑2018.06.12, 22:18
имя_образа - это id контейнера.
Не, id контейнера это одно, а имя другое. Обращение идет именно по имени -NAME.
Есть проект -фронт и бек и они под докером в разных контейнерах. Бек на yii2. Мне нужно туда curl запросы слать. Это рабочие конфиги. Но вот у меня они не работают.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 11:14
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.
Из какого контейнера куда и как вы обращаетесь?
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 12:23
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.
Из какого контейнера куда и как вы обращаетесь?
Я из одного контейнера обращаюсь к другому.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 12:34
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.
Из какого контейнера куда и как вы обращаетесь?
Я из одного контейнера обращаюсь к другому.
контейнеры из разных конфигов по умолчанию находятся в разных сетях. К ним нельзя обращаться по имени.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 12:57
h_elena
zelenin писал(а): ↑2018.06.13, 12:34
контейнеры из разных конфигов по умолчанию находятся в разных сетях. К ним нельзя обращаться по имени.
Так ведь это работает. Люди запускают.
Но не в этом дело. Как мне тогда обращаться? По локалхосту и номеру порта не работает. Хотя постмен работает для такого случая.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 13:08
zelenin
h_elena писал(а): ↑2018.06.13, 12:57
zelenin писал(а): ↑2018.06.13, 12:34
контейнеры из разных конфигов по умолчанию находятся в разных сетях. К ним нельзя обращаться по имени.
Так ведь это работает. Люди запускают.
запускают. а обращаться могут, только если поместят в одну сеть. Пятый раз пишу.
h_elena писал(а): ↑2018.06.13, 12:57По локалхосту и номеру порта не работает. Хотя постмен работает для такого случая.
localhost - это то, что внутри контейнера. два разных контейнера - два разных localhost. из постмена можете обращаться, т.к. порты обоих контейнеров проброшены на хостовую машину, и это третий локалхост, третий контекст.
Как? я же написал - в одну сеть объединить два конфига.
Либо обращаться по ip/порту хостовой машины.
Но зачем вам обращаться по внутренним идентификаторам, если у вас два разных конфига? объедините их в один либо используйте как две независимых системы со всеми вытекающими.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 13:14
h_elena
zelenin писал(а): ↑2018.06.13, 13:08
Как? я же написал - в одну сеть объединить два конфига.
Они идут как 2 независимые системы.
zelenin писал(а): ↑2018.06.13, 13:08
Либо обращаться по ip/порту хостовой машины.
Делала, идет зависание и окончание по таймауту.
zelenin писал(а): ↑2018.06.13, 13:08
либо используйте как две независимых системы со всеми вытекающими.
Здесь можно поконкретнее. Как можно в этом случае к ним обращаться или что нужно изменить в конфигах?
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 13:22
zelenin
h_elena писал(а): ↑2018.06.13, 13:14
zelenin писал(а): ↑2018.06.13, 13:08
Как? я же написал - в одну сеть объединить два конфига.
Они идут как 2 независимые системы.
а сеть может быть одна, если на одной машине запускаете
h_elena писал(а): ↑2018.06.13, 13:14
Здесь можно поконкретнее. Как можно в этом случае к ним обращаться или что нужно изменить в конфигах?
если это две независимых системы, то не меняйте ничего в конфиге, а обращайтесь с этим как будто это сторонний сервер.
Re: Yii2 basic и docker
Добавлено: 2018.06.13, 13:28
h_elena
zelenin писал(а): ↑2018.06.13, 13:22
а есть может быть одна, если на одной машине запукаете
Запускаю на одной машине.
zelenin писал(а): ↑2018.06.13, 13:22
если это две независимых системы, то не меняйте ничего в конфиге, а обращайтесь с этим как будто это сторонний сервер.
Мне нужно понять как обращаться. Если обращаюсь http://имя_контейнера, то я до второго контейнера достукиваюь, но он отдает 400. И в логах второго контейнера я вижу, что я как бы достучалась. Но как я поняла он не понял куда меня направить.