George
вопрос - что не нравится?
George
второй этап - ога
Tyler
срать в stdout; далее докер коллектит логи, в настройках докер демона делаешь journald, ставишь на хост что-то типа fluent-bitи шлешь в удаленное хранилище
Мне нужна переносимость кода, чтобы не лезть в конфиги хоста. Если просто срать в stdout, то выходит слишком много мусора, а мне, к примеру нужен только access-log с php-fpm
George
тогда вариантов два
George
1. внутри контейнера настраивать отправку в удаленное хранилище. Для практически любого языка есть модуль с коннектором в эластик
George
даешь реквизиты оно шлет
George
2. пишешь в файл по определенному пути, его монтируешь на хост машину. Или в вольюм
George
насчет мусора - тот же journalctl умеет фильтровать выхлоп (надо только немного научиться)
Tyler
тогда вариантов два
если не сложно, подскажите чем плоха первоначальная идея с отдельным дескриптором, доступным по порту (если такое вообще возможно)?
George
а зачем порт?
Tyler
а зачем порт?
чтобы был доступ извне, как stdout, только уже с нужной мне инфой
George
ты чего не то хочешь
George
либо фильтруешь выхлоп докера, либо пишешь в файл, а дальше делаешь с ним нужные операции
Александр
Ты зачем unix docker на виндовую машину скачал
Нормальный докер. Он запускался. Могло ли ошибку вызвать установленая виртуалка убунты из магазина приложений?
Александр
Wsl?
Да
central
Да
Это не виртуалка
Александр
😳
Никита
Это не виртуалка
это вроде как полу-нативная штука, не?)
Сергей
подскажите как можно сделать server_name nginx в докере, чтобы на локальном можно было не по localhost коннектиться?
George
в смысле?
Сергей
ну чтобы в контейнер можно было по локальному урлу foo.bar заходить, а не по localhost
George
с хоста?
George
тогда тебе надо днс или /etc/hosts на хосте поправить - это раз
George
два - в конфиге nginx указать соответствующие vhosts
George
но ты в состоянии это и сам сделать
George
так в чем вопрос? 😊
Сергей
мне нужно поднять 2 приложения на разных доменах на локальном компе)
Сергей
вместо localhost:8000 нужно к примеру api.loc:8000
George
я не понимаю в чем проблема ) берешь и делаешь
central
Anton
как в docker-compose up просунуть env vars, чо-то не получается через файл?
Anton
frontend: build: context: . dockerfile: Dockerfile.e2e environment: GITHUB_USERNAME: "${GITHUB_USERNAME}" Dockerfile.e2e: ARG GITHUB_USERNAME
Anton
должно так работать?
George
есть два способа: через env_file и через .env
Anton
засада. Хотелось без доп. файлов
George
https://docs.docker.com/compose/compose-file/#args
George
тебе это нужно
George
но это шляпа. я тебе сразу говорю
Anton
работает шляпа! спасибо!
Anton
да мне на разок в момент билда прокинуть аргументы, я потом в рантайме ими не пользуюсь
Anton
docker build --build-arg
большое спасибо, только мне надо docker-compose up
Gleb
ну это тлже самое что в композе аргс
George
фанатичный я бы сказал
Anton
с компоузом?
George
потом еще пожалеешь десять раз, что все на компоузе собрал )
George
да, лучше отделять стадию сборки и запуска образов
George
уже не один раз не один человек выстрелил себе в ногу этим
Anton
а не, так это ж не я
George
🤷‍♂️
Anton
это мне досталось, сам я бы и не пользовался
Anton
потом еще пожалеешь десять раз, что все на компоузе собрал )
кстати, а какой бест практис, чтобы я донести нормально мог?
George
донести что?
George
я ж повторил, что https://t.me/docker_ru/138512
Никита
день добрый всем! есть следующая ситуация: на машине поднят VPN и jar-ник запускаемого приложения стучится к базе по 10.0.*.* создал образ, закинул в него джарник, пытаюсь запустить - он не видит того самого адреса из 10.0.*.* вопрос: как можно расшарить сеть на джарник или же проще будет каждый из контейнеров вручную коннектить к VPNу? P.S. за основу взят был образ с ubuntu 18.04, на машинах и на ноуте - тот же ubuntu 18.04
George
ну, логично
George
зачем тут докер?
Никита
зачем тут докер?
цель - запихнуть джарник с аппкой в контейнеры, для горизонтального масштабирования
Никита
по сути каждый джарник содержит в себе микросервис
George
масштабируй сервисами. Ну, ок - намекну - у тебя докер выделенную сеть делает
George
ты можешь либо отказаться от изоляции сети на уровне докера
George
это первый способ
George
либо попробовать настроить файрволл и прочее, чтобы сеть докера сошлась с сетью ВПН как надо
Никита
ты можешь либо отказаться от изоляции сети на уровне докера
если это сделать то ВПН-сеть будет видна, верно?
George
по идее да
Alex
Привет, всем - такой вопросик - собрал приложение при помощи dockerfile - оно работает на 80 порту - но соотвественно я его не могу запустить на сервере docker run -d -p 80:80 name_conteiner - listen tcp 0.0.0.0:80: bind: address already in use. - уже используеться этот порт - в этом случае мне просто docker run -d -p произвольный-порт:80 - выбрать произвольный порт
Alex
выбери произвольный. ога. Можешь начать с 8080
а затем проксировать туда nginx если что либо нужно - вот таким видом? server { server_name test.net www.test.net; location / { proxy_pass http://ip-контейнера:мой-произвольный-порт; break; } }
DjinN
Если я делаю docker run, то он не проверят обновился ли образ в регистри?
DjinN
Нет
получается я должен всегда сначала pull делать, чтобы актуальное состояние было? Или есть какой то флаг (не могу найти)?
Nikita
Привет. У меня проблема с билдом контейнера, точнее с его запуском Есть докерфайл, который собирает ангуляр и потом под nginx-ом его раздает. RUN ls /analytics_frontend - показывает директорию с файлами, но когда я запускаю собраный контейнер - там лежит только package-lock.json Докерфайл: FROM node:10.16.0 as build WORKDIR /analytics_build COPY ./frontend /analytics_build RUN rm -rf /analytics_build/dist RUN rm -rf /analytics_build/node_modules RUN npm install RUN node /analytics_build/node_modules/@angular/cli/bin/ng build RUN ls /analytics_build/dist FROM nginx:1.15.8 WORKDIR /analytics_frontend COPY --from=build /analytics_build/dist/* /analytics_frontend/ Лог с консоли: https://gist.github.com/Nick-Omen/0fde88cbcad389691c41ff87a734c229