Рустам
Вроде такого? env_file: - 'variables.env'
Рустам
у меня как раз все в один .env сложено
George
да
Рустам
А почему такое на коммент выдает? [WARNING]: Empty continuation lines will become errors in a future release. Там по факту просто строка вида: # Comment line is here.
Artur
Добрый день, а вопрос про докер композ можно?
Artur
или тут только про докер?
Yad
тут про докер как технологию
Yad
можно всё что около
Artur
ERROR: for container-name Cannot start service container-name: error while creating mount source path '/var/www/container-name': mkdir /var/www: read-only file system
Artur
вот такую ошибку получаю при docker-compose up, все что можно сделал уже
Artur
даже права 777 на папку /var/www установил, не помогает
Artur
буду благодарен любой подсказке
Maxim
буду благодарен любой подсказке
По фотографии плохо диагностируется) Композ файл в студию
Artur
По фотографии плохо диагностируется) Композ файл в студию
version: "3.5" services: bd-service-name: image: mariadb:10.4 container_name: pofig working_dir: /application volumes: - ../:/application environment: - MYSQL_ROOT_PASSWORD=pofig - MYSQL_DATABASE=pofig - MYSQL_USER=pofig - MYSQL_PASSWORD=pofig ports: - "3390:3306"
Artur
нечего удивительного, вроде далеко не в первый раз, но все же гугл не хочет помогать
Artur
как понимаю из сообщения ошибки дело в волюме, но не какие танцы с бубном не помогают
Artur
идеи?
George
Ты смелый
George
Юзай вольюмы, настоящие, не бинд маунты. И все будет ок
Artur
Ты смелый
не я писал, но на маке работает
Artur
а на ubuntu 19.04 нет
George
в смысле настоящие ?
Есть вольюмы, а есть бинд маунты
George
Синтаксис у них почти одинаковый
George
Первые лежат унутри докера
George
Вторые - в файловой системе, обычно где-то сбоку от компоуз файла
Maxim
идеи?
Кроме прав на папку, там еще AppArmor мог вмешаться… Пока единственная догадка) В целом, бинд-маунтить - не очень хорошо, как правильно сказали выше. Но уж если маунтить, то аккуратно - каталог внутри (не весь текущий, и не родительский). Сейчас если получить доступ к контейнеру - можно что-угодно сделать с самим compose-файлом, и файлами других контейнеров.
manefesto
есть проблема, которая меня уже задолбала Стоит nginx, в качестве бэкенда к нему nodejs, php-fpm и спустя 1-2 дня рандомно перестает отвечать nginx, то есть снаружи тишина, заходишь в контейнер и делает curl nodejs:8080 и всё нормально
manefesto
первое это был wordpress, второй кастомный api для внутренних нужд
Maxim
это только для локальной разработки
Какая потребность вынуждает так делать? Я подозреваю, что это не от хорошей жизни) Лучше сразу тщательно и аккуратно собрать такое окружение, которое будет иметь минимальные отличия между девом и продом. Тогда более вероятно собрать все грабли до прода. И легче воспроизводить ошибки в дев-окружении, когда (неизбежно) найдутся баги в проде.
manefesto
стучусь например курлом, отпадает по таймауту, nginx такое ощущение что просто перестает слушать порт пытался telnet'ом, тишина
manefesto
причем внутри контейнера тоже пытался постучаться на localhost
manefesto
уже грешил на alpine, но переход на ubuntu, debian проблему совсем не решают
LEXASOFT
Внутри контейнера другой локалхост
Maxim
это только для локальной разработки
Попробуй отключить AppArmor, и посмотреть поможет ли: https://help.ubuntu.com/community/AppArmor#Disable_AppArmor_framework
Maxim
стучусь например курлом, отпадает по таймауту, nginx такое ощущение что просто перестает слушать порт пытался telnet'ом, тишина
Есть шанс, что правила firewall про докер перезаписываются кем-нибудь… Насколько похоже на правду? Хост система какая, кстати?
manefesto
centos
manefesto
отключен selinux на всякий случай
Maxim
еще идеи?
Пока нет( А в системном логе ничего интересного нет?
Artur
Пока нет( А в системном логе ничего интересного нет?
Да вряд ли, я просто не понимаю почему такая примитивная вещ может не работать
Maxim
centos
CentOS 7 ? И на всякий, еще: docker version
Maxim
Да вряд ли, я просто не понимаю почему такая примитивная вещ может не работать
Ну, я на данный момент тоже. Я бы начал, пожалуй, с журнала. journalctl -f , а в соседнем терминале запустить то, что ошибку выдает.
Artur
Ну, я на данный момент тоже. Я бы начал, пожалуй, с журнала. journalctl -f , а в соседнем терминале запустить то, что ошибку выдает.
сен 09 18:30:14 pofig-pofig-pofig docker.dockerd[974]: time="2019-09-09T18:30:14.974291050+03:00" level=error msg="Handler for POST /v1.30/containers/83277142156eef6c9f67bd211dcf4e28468db44d6c4082d24b7f43694b59a72d/start returned error: error while creating mount source path '/var/www/pofig/.docker/phpdocker/nginx/nginx.conf': mkdir /var/www: read-only file system"
Artur
нечего интересного
Maxim
Да уже решил
И что оказалось?
Artur
И что оказалось?
Не знаю, я добавил новую группу докер кампоз
Artur
Хотя с sudo не сработало
Maxim
Не знаю, я добавил новую группу докер кампоз
Не понятно: куда и какую группу добавил?
Artur
Создал новую группу, groupadd docker-compose
Artur
И добавил своего юзера туда
Artur
😳😳😳😳
Да сам в шоке
Maxim
И добавил своего юзера туда
Ну я фиг знает, но вроде это ни на что никак повлиять не могло ) Не перепроверял, но раньше была группа docker, и все. Больше никаких особых групп не завозили. Ты ее в доке нашел?
Anonymous
Гайс, с докером на вы, просто docker-compose работает, но при попытке docker stack deploy -c failed to update service my-service_app: Error response from daemon: The network my-service_isolated cannot be used with services. Only networks scoped to the swarm can be used, such as those created with the overlay driver. работающий вариант: networks: isolated: driver: bridge public: driver: bridge external: true если просто изменить driver на overlay, то такая ошибка как выше
Anonymous
Вопрос в чем? По-моему, он все написал, что ему не нравится
как решить вопрос? В общих чертах - из-за чего такая ошибка? В двух словах высокоуровнево помогло бы
Anonymous
У сворма свои сетки
в чем разница между просто docker-compose в разрезе сетей? Как повторить изолированную и внешную сеть в сворме? Какие подходы тогда применяются когда юзается swarm?
George
в чем разница между просто docker-compose в разрезе сетей? Как повторить изолированную и внешную сеть в сворме? Какие подходы тогда применяются когда юзается swarm?
Докер компоуз - это способ описания связанных сервисов. Может использоваться как для деплоя на stand alone docker, так и в кластер сворм
George
Проблема в том, что как минимум есть два формата компоуза - 2.* И 3.* И они параллельные. Из твоего описания неочевидно какой ты используешь, но скорее 3.*
Anonymous
3.7
George
Касательно сетей - ты оф доку внимательно читал? Много подводных камней там раскрыто
Anonymous
Касательно сетей - ты оф доку внимательно читал? Много подводных камней там раскрыто
ох, дока по докеру - сама по себе подводный камень имхо ) нужно просто решить трабл, вникать буду при первой возможности когда будет время
Gleb
ты взял сворм, просто теперь не будет)
Anonymous
спасибо и на том, конечно, что дока вообще есть - но там внизу каждой статьи оценочки, которые говорят о том, что юзерам не очень заходит
Anonymous
Anonymous
страничка про сворм конкретно, 297/370, ну это такое, ладно
Anonymous
я просто в сети пока уперся, вот если с ними решить трабл - то все должно работать, а потом вникну детально и исправлю если где будут косяки