George
ну я хз
George
вроде все верно
George
но может проблема в настройках пхп
Archakov
Права нужно задавать на моей машине или через команду, когда путь настраиваю в виртуалке?
George
он вообще по умолчанию в /usr/local куда-то смотрит
Archakov
что интересно, a.txt читается, а index.php выдает это
George
логи пыхыпы смотри
George
а a.txt берется из контейнра с nginx
George
не заходя в контейнер с php
Archakov
окей
Archakov
мой косяк. я забыл исправить путь в Dockerfile самого php. Заменил на /var/www/html все заработало
Ilya
Господа, подскажите, когда я указываю для docker-compose путь к файлу конфигурации через -f, контейнеры билдятся относительно директории, из которой я вызываю команду up, или относительно той, где лежит конфиг?
Ilya
То есть именно контекст внутри контейнеров относительно чего задается?
George
и, да, насколько я помню, в этом случае контекст задается относительно места запуска команды! НО! тебе проверить это 5 минут (написать тестовый кейс)
Ilya
и, да, насколько я помню, в этом случае контекст задается относительно места запуска команды! НО! тебе проверить это 5 минут (написать тестовый кейс)
Ну докер-компоуз норм работает, а вот докер билд походу берет путь относительно директории, где docker-compose.yml лежит То есть у меня есть такая иерархия: . <application-files> tests/ docker-compose.yml containers/ cont-1/ Dockerfile cont-2/ Dockerfile Я запускаю docker-compose -f tests/docker-compose.yml up, и хочу, чтобы у меня докерфайлы относительно . собирались, а не отноительно tests/. Как-то возможно в них через компоуз эту директорию прокинуть, не держа их непосредственно в корне проекта?
George
погоди
George
docker build -t OLOLO -f path_to_Dockerfile path_to_context
George
вот так выглядит каноничная команда запуска докер билд
George
ты контекст указал в докер-компоузе?
George
вообще решение у меня для тебя есть, но оно тебе не понравится
Ilya
Я слоупок
George
сделай makefile и в ней наплоди инструкций docker build 😊
George
у тебя флоу будет более управляемый
George
чем ломать голову - где контекст, какие пути
Ilya
Я через мейкфайл и делаю
Ilya
Только мейкфайл внутри докерфайла вызываю)
Ilya
Но мне то сам докербилд не нужен, мне нужно только внутри компоуза делать
Ilya
Я прошу прощения, а контекст относительно чего задается? Относительно директории вызова команды, или директории, где docker-compose.yml лежит?
George
это мы возвращаемся к твоему изначальному вопросу. Нет, я не помню точного ответа
George
повторюсь
George
и, да, насколько я помню, в этом случае контекст задается относительно места запуска команды! НО! тебе проверить это 5 минут (написать тестовый кейс)
Anonymous
Вопросик, как сделать докерезированное приложение доступным для всех компов в локальной сети?
Sergey
Вопросик, как сделать докерезированное приложение доступным для всех компов в локальной сети?
в идеале какой-нибудь балансировщик и через него трафик пускать. Типа nginx-proxy какой. А так можно просто порт пробросить
Sergey
если в локальной сети еще и dns свои есть можно вообще красиво сделать
Anonymous
Ну т.е. у меня докер приложение развернуто на порту 7666 локальный ip допустим 1.1.1.1 хочу что бы ребята из команды могли получить доступ к моему приложению просто перейдя по 1.1.1.1:7666
George
локальный - чего - хоста?
Viktor
Можно ли как-то используя готовый image проигноривать EXPOSE, которые были в его Dockerfile?
ilya
Можно ли как-то используя готовый image проигноривать EXPOSE, которые были в его Dockerfile?
expose вроде бы опциональная штука, которая влияет только на манифест имиджа и сама по себе никаких портов не открывает
George
Есть условия, когда экмпоуз отрабатывает
Viktor
expose вроде бы опциональная штука, которая влияет только на манифест имиджа и сама по себе никаких портов не открывает
Я тоже так думал, но беру prom/node-exporter в docker-compose, и автоматически на хост пробрасывается 9100 порт, хотя у меня его нигде нет. Но он есть в EXPOSE в их Dockerfile.
George
запускается чем? кубом?
George
свормом?
Viktor
Запускается простым docker-compose
George
эм. Можно посмотреть?
Viktor
Да, конечно, сейчас уберу все лишнее.
Viktor
version: '3.1' services: node-exporter: image: prom/node-exporter
George
и все?
George
ключи запуска docker-compose ?
Viktor
❯ cat prom.yml version: '3.1' services: node-exporter: image: prom/node-exporter ❯ docker-compose -f prom.yml up -d Creating network "desktop_default" with the default driver Creating desktop_node-exporter_1 ... done ❯ docker-compose -f prom.yml ps Name Command State Ports --------------------------------------------------------------- desktop_node-exporter_1 /bin/node_exporter Up 9100/tcp
Viktor
вот и 9100 порт
George
и что?
George
он же снаружи недоступен
Viktor
То есть?
George
gaal@linux-x1:~> docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a5baeed59fa0 prom/node-exporter "/bin/node_exporter" 7 seconds ago Up 5 seconds 9100/tcp gaal_node-exporter_1
George
аналогично
George
в прямом смысле
Viktor
Так в этом и вопрос -- как заставить docker забыть об этом порте, не делая свой image?
George
зачем?
George
он ни на что не влияет
George
давайте проведем мысленный эксперимент
George
сделайте конфиг ноуд экспортера который будет слушать другой порт, скажем, 9999
George
и запустите соседний контейнер в той же докер сети и проверьте
George
9100 - не отвечает, а по 9999, хотя в экспоуз его нет, сможете обратиться к ноуд экспортеру
George
так ясно?
Viktor
Да, действительно, все так
George
вопрос снят?
Viktor
Проблема была у меня вовсе не в докере -- из-за другой ошибки я решил, что это мне мешает
Viktor
Да, вопрос снят, но ответ оказался даже проще :)
Viktor
Спасибо.
ilya
Есть условия, когда экмпоуз отрабатывает
а что это за условия, кстати? на уровне прочитать конфу о контейнере из сокета докера и что-то с ней сделать?
George
docker run -P vs docker run -p xxx:xxx
George
если кратко
ilya
понятно