Grigory
пока не решали эту проблему
Maxim
А потом запускать docker-compose с хостовыми переменными окружения? Зачем? если есть .env файл
docker-compose читает переменные из .env файла который лежит рядышком с ним
Maxim
да, нам это нравится
ну так зачем в Dockerfile эти все кастомизации? можно создать один образ и на его основеуже разные сервиы, не нужно будет делать на каждый сервис отдельный образ
Grigory
Так образ же один, но он при запуске у себя меняет конфиг на основе .env файла
Maxim
Так образ же один, но он при запуске у себя меняет конфиг на основе .env файла
в вашем Dockerfile вы копируете в образ COPY docker/vhost.conf /etc/nginx/nginx.conf.template и получается что если нужна другая конфигурация с другим набором переменных то вам нужно создать еще один образ для нового сервиса
Grigory
Хорошо, что поняли друг друга)
Grigory
Причем количество доменов часто меняется
Grigory
Не, на разных физических машинах запускаются
Maxim
Не, на разных физических машинах запускаются
так никто не запрещает иметь на каждой машине traefik )
Grigory
так никто не запрещает иметь на каждой машине traefik )
Ну зачем? если на одной машине один сервис? но за traefik спасибо, не знал, надо почитать
Maxim
Ну зачем? если на одной машине один сервис? но за traefik спасибо, не знал, надо почитать
Попробуйте, вам поравится, снимает часть обязанностей с nginx, например ssl сертификаты, балансировку, реверсивный прокси, да и много чего полезного есть, полезная штуковина в хозяйстве, присмотритесь к нему, использовать может вам и не нужно будет, но познакомиться будет точно не во вред
Lex
Добрый вечер, столкнудся с такой штукой. Не может достучаться до /etc/hosts А вот что делать с этим - не соображу. TASK [dr.server : Update /etc/hosts] ******************************************* An exception occurred during task execution. To see the full traceback, use -vvv. The error was: OSError: [Errno 16] Device or resource busy: b'/etc/.ansible_tmpl__ymdk0hosts' -> b'/etc/hosts' fatal: [rstat]: FAILED! => {"changed": false, "msg": "Unable to make /tmp/tmpo1ablgv6 into to /etc/hosts , failed final rename from b'/etc/.ansible_tmpl__ymdk0hosts': [Errno 16] Device or resource busy: b'/etc /.ansible_tmpl__ymdk0hosts' -> b'/etc/hosts'"}
Lex
К удалённому серверу подключение имеется?
на vps без докера ставится на ура, на рабочей машине в контейнере - вот такая фигня доступ есть
Lex
не скажу точно к какому host стучится установщик
Maxim
не скажу точно к какому host стучится установщик
А что именно тогда у вас не получается?)
Borik
привет!
Borik
я хочу что-то вроде линуксовго: docker run -e "deep=`date`" --rm alpine env но в винде. как?
Oleg
set?
Borik
set?
set DDD=date в винде не работает :(
manefesto
Привет переношу сервисы в докер Сейчас схема такая на входе стоит балансировщик nginx, который заворачивает трафик на нужные нам контейнеры Контейнеры поднимаются через docker-compose, соответственно для каждого docker-compose своя сеть Так как балансировщик по днс имени, и подключен к контейнерам через external network, то перезапустить зависимые контейнеры нельзя, так как при рестарте сети удаляются, а они зависят от другого контейнера
manefesto
решил создать отдельный сервис который будет при старте поднимать сеть [Unit] Description=network from frontend Requires=docker.service After=docker-frontend.service [Service] WorkingDirectory=/srv/docker/frontend_dev ExecStart=/usr/bin/docker network create -d bridge frontend_network ExecStop=/usr/bin/docker network rm frontend_network [Install] WantedBy=multi-user.target но при перезапуске он падает
manefesto
магия
Ruslan
вся магия в логах...
Andrey
а главное не очень понятно нафига, для докера, в автоматическом режиме, он там всё сам, для экстернал сети, её один раз создать и всего делов
manefesto
Ну создать это понятно Хотел создание и удаление сделать через сервис
manefesto
что ты под этим подразумеваешь ?
manefesto
создание сети в docker-compose ?
manefesto
А так можно ?
Dmitrii
создание сети в docker-compose ?
https://docs.docker.com/compose/networking/
Dmitrii
тогда сможешь docker-compose down и он будет удалять все (кроме сторов)
manefesto
смотри какая ситуация у меня есть 5 сайтов для примера site1, site2, siteN Это свой docker-compose и я решил для них создать сети network_site1, network_site2, network_siteN на входе у меня стоит балансировщик с сетью network_balancer и к нему подключены сети моих сайтов(network_siteX) Соответвенно если я обновляю из registry сайт, то предварительно гашу сервис с сайтом, для примера systemctl stop docker-site1 так вот когда происходит docker-compose down удаляется и сеть, а она фигурирует в конфиге балансировщика и просто так нельзя сделать docker-compose down надо использовать предопределенные сети, а не динамически создаваемые То есть хочу быть уверенным что мои сети не грохнуть при рестарте сервиса Видимо вариант только создавать сети вручную
Dmitrii
смотри какая ситуация у меня есть 5 сайтов для примера site1, site2, siteN Это свой docker-compose и я решил для них создать сети network_site1, network_site2, network_siteN на входе у меня стоит балансировщик с сетью network_balancer и к нему подключены сети моих сайтов(network_siteX) Соответвенно если я обновляю из registry сайт, то предварительно гашу сервис с сайтом, для примера systemctl stop docker-site1 так вот когда происходит docker-compose down удаляется и сеть, а она фигурирует в конфиге балансировщика и просто так нельзя сделать docker-compose down надо использовать предопределенные сети, а не динамически создаваемые То есть хочу быть уверенным что мои сети не грохнуть при рестарте сервиса Видимо вариант только создавать сети вручную
- сделай отдельный docker-compose с nginx и сетям для каждого siteN - в docker-compose для siteN используешь нужную сеть из nginx - когда делаешь docker-compose down удалится сеть только для siteN - перед docker-compose -f siteN.yml up -d, делай docker-compose -f nginx.yml
Dmitrii
посмотри на https://github.com/jwilder/nginx-proxy возможно для siteN он сам создает отдельную сеть
Maxim
смотри какая ситуация у меня есть 5 сайтов для примера site1, site2, siteN Это свой docker-compose и я решил для них создать сети network_site1, network_site2, network_siteN на входе у меня стоит балансировщик с сетью network_balancer и к нему подключены сети моих сайтов(network_siteX) Соответвенно если я обновляю из registry сайт, то предварительно гашу сервис с сайтом, для примера systemctl stop docker-site1 так вот когда происходит docker-compose down удаляется и сеть, а она фигурирует в конфиге балансировщика и просто так нельзя сделать docker-compose down надо использовать предопределенные сети, а не динамически создаваемые То есть хочу быть уверенным что мои сети не грохнуть при рестарте сервиса Видимо вариант только создавать сети вручную
можно один раз в bash скрипте написать какую external сеть создать для проекта и указывать её в docker-compose.yml файлике, еще можно в этом же bash после запуска проекта проверить запущен ли traefik и если его нет то запустить контейнер и добавить его в только что созданную внешнюю сеть в которой уже находятся ваши работающие сервисы которые ожидают --scale, например.
Anonymous
Всем привет. Подскажите лечение ошибки: Не удалось найти контейнер для присоединения. Убедитесь, что соответсвующий контейнер запущен. Хотя докер запущен по Windows-контейнер Проект тоже с DockerFile под windows При выполнении команды docker ps -a ничего нет .
Dmitry
Кто пользуется GitLab. Эта статья актуальна, что с раннером необходимы такие извращения? https://docs.gitlab.com/ee/ci/docker/using_docker_build.html А то судя по документации, уже можно организовать всё через команды .gitlab-ci.yml (image) ?
manefesto
если ты используешь gitlab.com, то там все работает из коробки
Александр
Всем привет. Можно ли как-то из докер контейнера послать команду в систему? Или можно как-то к Laradock приделать контейнер запускающийся так чтобы команда docker была доступна внутри workspace?
Vlad
всем привет. вопрос больше по apache, но может вы подскажете. в папке домена лежит только index.html, но по запросу "/" отдает "file not found" (видимо контейнер php). почему apache после неудачного поиска index.php не отдает index.html?
Vlad
потому что у него прописано index index.php наверное
ну да. я так понимаю, он должен поискать index.php, и если не найдет отдать index.html
енот
в каком? php?
апача, епрст
Vlad
апача, епрст
так там и прописано. я прост скриптом собираю его
енот
покажи что там прописано
Vlad
енот
действительно прописано. ну сделай ls /var/www/html/rem1 | grep index в контейнер
енот
и grep -i directoryindex /etc/httpd или /etc/apache2
Vlad
и grep -i directoryindex /etc/httpd или /etc/apache2
в обоих контейнерах (apache и php) все файлы с одинаковыми правами: -rw-r--r-- 1 1000 985
Maxim
Всем привет. Можно ли как-то из докер контейнера послать команду в систему? Или можно как-то к Laradock приделать контейнер запускающийся так чтобы команда docker была доступна внутри workspace?
Для того что бы из контейнера послать задачу куда либо вам нужен например TeamCity который имеет API куда вы отправите запрос из контейнера, ТимСити получит ваш запрос из контейнера и с помощью своего секретного агента ( с использованием ssh ключей, например) легко выполнит необходимую заранее определенную вами команду в два счета. ТимСити хоть и предназначен для других целей но это один из таких инструментов и таких инструментов вагон и маленькая тележка
Andrey
Всем привет. Вопрос по compose-файлу. Как сделать expose на определенный порт, если мой 'network_mode: "host"'? Expose не работает, либо я его неправильно использую.
Denis
Никак если хост
Denis
У вас приложение будет биндится прямо на интерфейсах хоста
Denis
Без всяких проксирований
Andrey
Не дочитал до того места, где написано, что host networking поддерживается только для Linux)
manefesto
Понаставят линупсов
Kana
Подскажите, как из контейнера соединиться с бд на хосте?
manefesto
По адресу
manefesto
Ну или по днс имени
Kana
По адресу
А как узнать адрес хоста?
manefesto
Объясни задачу
Navern
Объясни задачу
База слушает 127.0.0 чувак тыкается в нее из контейнера)
manefesto
Эм, дык как бы. Да засунь ты в контейнер бд или открой в сеть и используй днс
Navern
Пробрасываешь сокет файл и не паришься в целом
manefesto
Ну прям true way
manefesto
Но не лишено смысла