Artem Kasapchuk
я почитал вроде некоторые запускает конйтенры и в них разработку ведут, ну как то еще не понял процесс настройки
Ευγένιος
Типа заменять MAMP.
Ευγένιος
А разработку ты можешь вести как обычно.
Artem Kasapchuk
спасибо, а как лучше? теоритически кажется лучше вести разработку сразу в контейнерах, я так понимаю потом это всё собирается в образ, отправляется на сервер и там разворачивается, так происходит?
Ευγένιος
Решаешь сам, но я считаю лучше вести разработку как обычно, а потом уже собирать образы.
Artem Kasapchuk
Решаешь сам, но я считаю лучше вести разработку как обычно, а потом уже собирать образы.
по классике удобно да, но боль доставляет разные версии в разных приложениях на серверах, на локалке постоянно менять, да и докер решил использовать ибо задрался всю эту мешанину настраивать и на рабочей машине и на сервер)
Sergey
а кто мешает билдить код по дефолту но в контейнеры с гита?
Je
"разработка в контейнерах" это дичь полная, обычно сторонние сервисы подымаешь в докере, но приложение свое пишешь как обычно
Artem Kasapchuk
ага кажется начинаю понимать, на сервере просто пересобирать образ и данные апа из репы подтягивать
Je
Чтоб "разрабатывать в контейнерах" тебе придется volume подключать, а в проде это плохой паттерн
Je
если у тебя не фулл микросервисы
у меня фулл микросервисы и я выставляю все зависимости наружу портами в докере, а текущий запускаю локально
Sergey
Чтоб "разрабатывать в контейнерах" тебе придется volume подключать, а в проде это плохой паттерн
я вас не понимаю, зачем на тачке если вы можете сразу билдить в контейнер и тестить там
Artem Kasapchuk
я правильно ж понимаю, мне для деплоя даже гонять ничего на сервер не надо, просто одинаковые докер файлы на локалке и сервере держать, на сервер просто тянуть данные с репы и пересобирать и запускать заново контейнеры?
Serg
Билдить на проде не очень хорошо.
Ευγένιος
Да ты просто на докер-хаб потом кидаешь образ и деплоишь на сервер.
Je
я вас не понимаю, зачем на тачке если вы можете сразу билдить в контейнер и тестить там
Мне не тестить, отлаживать нужно, и go build как-то быстрее docker build работает
Ευγένιος
Собирать каждый раз по новой муторно.
Sergey
Собирать каждый раз по новой муторно.
зачем каждый раз, у вас слои остаются
Artem Kasapchuk
Собирать каждый раз по новой муторно.
в плане образ содержит код апа и базу с данными так выходит?
Je
в общем фулл микросервисы нифига не аргумент, локально быстрее и удобней, тем более отлаживать иначе нельзя
Sergey
в общем фулл микросервисы нифига не аргумент, локально быстрее и удобней, тем более отлаживать иначе нельзя
может я запутался в обсуждениях, разрабатывайте как хотите, просто товарищ говорил о разных версиях приложения на серверах, в докере с эти удобнее
Je
я не понял даже, как у него получается собрать разные версии
Sergey
ну деплой поди с разных реп или веток идет
Je
ну да, еще в принципе, если он сделает dep ensure в докерфайле, то без гарантии vgo повторяемости сборки не будет
Je
@livemirsi короч мы тебя не поняли, накидай хоть что за стек и в чем именно сложность повторяемости сборок
Artem Kasapchuk
товарищи, я фронтенр, сейчас надо делать апп с серверным рендерингом, пытаюсь осмыслить как мне это всё провернуть, по сути у меня nginx,nodejs,mongodb,elasticsearch, получается 4 контейнера, по идеи собираю образ отправляю на сервер там разворачиваю тестовый или продакшен. Пока размышляю над чем, как вести разработку: 1. сразу у себя запускать контейнеры цыплятся к ним, что бы была консоль ноды, монги, и там всё это хранить сразу, так же непонятно, код апа пушить в гит с контейнра прямо надо будет или как) 2. Разрабатывать приложение nodejs приложение у себя на локалке, при сборке образа упаковывать в контейнер и отправть на сервер 3. Или просто пушить код в репу, на сервере просто подтягивать свежий код и пересобирать образ и запускать его. И пока по самому процессу деплоя у меня туман, может посоветуйте какие нить толковые материалы с best practices. Много материала, что такое докер, как создать nginx контейнер с html страничкой, а вот по практике что то совсем не могу найти классных материалов.
Je
1. Разворачивай, цепляйся, для монги не забывай сделать volume, чтобы данные хранились у тебя на фс, не в контейнере 2. Разница лишь в том, как тебе удобно: a) ты можешь прокинуть код через volume b) ты можешь на каждый чих собирать образ и деплоить стек c) можешь локально запускать, но тогда все контейнеры из 1) должны быть выброшены портом наружу (expose) В мире белых людей часто используется c), но никто не будет сильно ругать на другое - всем пофигу как ты разрабатываешь 3) Код в репу ты обязательно пушь У тебя есть докер и развязанные руки, можешь просто docker-compose юзать, что проще, можешь swarm, можешь k8s - тебе нужно определиться, чего ты ждешь. Если нужно просто условно заказчику поставить резульатат работы - хватит и просто собрать образ, выкинув в ENV все необходимые параметры для запуска
Sergey
ELK в докере это какой то изврат как по мне, чересчур, проще раннер на ансибл закатать для него
Je
про elk там не было, был elastic, это не одно и то же, elastic быстро и просто запустить в докере
Artem Kasapchuk
о спасибо, кажется начинаю понимать как организовать базу, еластик,вебсервер в контейнеры портами наружу на дев поднятие, а для build приложение тоже в контейнер и тогда порты можно внутри докера организовать, после собираю образ и деплою его.
Sergey
лучше бросить это г и ставить k8s
Sergey
там проще будет
Je
k8s по существу зона ответственности девопса/админа, но не разработчика
-=LevT=-
Помогите врубиться. Виндузоид, новичок в докер, запускаю экспериментальные фичи docker4windows (—platform=linux). Иду по линуксячьим курсам, некоторые линуксовые контейнеры стартуют аналогично линуксовому докеру, а иные моментально завершаются. В логах типа Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/elasticsearch/nodes/49/node.lock Как быстро пофиксить мое окружение, чтобы контейнеры из существующих линуксовых образов были им довольны и работали?
-=LevT=-
Полагаю, что надо дать им volume. Есть вот такой пример '--volume', 'C:\Images\nuget\database:/var/www/db' '--volume', 'C:\Images\nuget\packages:/var/www/packagefiles' Можно ли заранее узнать линуксовые директории, которую надо пробросить - или только методом тыка? Типа /usr/share/elasticsearch/data/elasticsearch
Konstantin
1. Разворачивай, цепляйся, для монги не забывай сделать volume, чтобы данные хранились у тебя на фс, не в контейнере 2. Разница лишь в том, как тебе удобно: a) ты можешь прокинуть код через volume b) ты можешь на каждый чих собирать образ и деплоить стек c) можешь локально запускать, но тогда все контейнеры из 1) должны быть выброшены портом наружу (expose) В мире белых людей часто используется c), но никто не будет сильно ругать на другое - всем пофигу как ты разрабатываешь 3) Код в репу ты обязательно пушь У тебя есть докер и развязанные руки, можешь просто docker-compose юзать, что проще, можешь swarm, можешь k8s - тебе нужно определиться, чего ты ждешь. Если нужно просто условно заказчику поставить резульатат работы - хватит и просто собрать образ, выкинув в ENV все необходимые параметры для запуска
У меня вопрос в тему, я думал в моём случае разделить на: nginx, 3 три микросервиса ноды (логин и прочее, майн и таскера) и ssr на вуе, всё это организовать через нгин как прокси. Думаю как задать всё это в композере или надо делать каждому контейнеру свой Dockerfile потов в ручную создавать а в конпозере организовать всё это в docker network
Konstantin
Встретился с проблемой как секреты распределять разные по всем, чтобы не видно было в скриптах докера или композера
Konstantin
или делать через ключи
Konstantin
если через ключи в душе не имею в какую сторону смотреть
Je
Довер-вей - по процессу на контейнер, так что да, будет 3 образа и 3 докер-файла Сразу docker-compose с одной сеткой, это лучше и удобней, чем запускать независимо, плюс сразу начинаешь использовать резолвер (контейнер доступен по простому читаемому имени) Секреты для начала можно таскать через ENV, но если хочется сугубо прода - смотреть в consul, vault etc
Je
А, ну собственно какой-нибудь монги и эластика может хватить ванильных с докерхаба, просто конфиг подмонтируй и volume
Konstantin
у меня редис и монга на одтельных машинах
Je
Захочешь кластер - допишешь десять строчек в docker-comopse и да будет swarm, ща должны повылазить хейтеры и начать предлагать таблетки k8s
-=LevT=-
Можно ли/как получить доступ к содержимому Dockerfile образа взятого на стороне?
-=LevT=-
конкретно надо загрепать VOLUME (чтобы не лазить вручную смотреть через браузер hub.docker.com -> github.com/docker-library
Je
Можно ли/как получить доступ к содержимому Dockerfile образа взятого на стороне?
ну конечно можно, обычно даже грепать не нужно - в доках пишут все volum'ы и env'ы
-=LevT=-
ну конечно можно, обычно даже грепать не нужно - в доках пишут все volum'ы и env'ы
хочу сформировать параметр docker container run —volume именно что автоматически, а не руками после заглядывания в доки (ну и аналогично в docker-compose - когда до него доберусь)
Je
ну как автоматически-то, каждое приложение чото пишет в свою директорию, это в докере никак не трогают, нужно заглянуть в доки образа и глянуть, куда он собирается писать базу скажем - mysql в /var/lib/mysql, postgre в /var/lib/postgresql/data
-=LevT=-
блин... под виндою вот что вижу >docker volume ls local 9bf6efd7184badc10914d3572d9e5cef535c3ba5bb457f80e4d7b2eec57380d1 local a1b1f0cf5c386ab1951d9c74c45e28be48c7e705e65aa1e20302915d7d32f974 local fc7f071a2b8163f6eaed6d6e22251f47eca5d5fb914277a8c715a606ece8681f local myvol (последний только что создал руками) Есть и C:\ProgramData\Docker\volumes где это добро лежит Остаётся понять, почему lcow контейнеры обламываются туда писать
Sergey
k8s по существу зона ответственности девопса/админа, но не разработчика
так я от себя и говорю:) прост удобство то есть, его надо прост освоить:)
Je
Довер-вей? Это что значит конкретно?
>Each container should have only one concern https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#avoid-installing-unnecessary-packages
-=LevT=-
Кажись, понял: docker image inspect —format нечто
Konstantin
>Each container should have only one concern https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#avoid-installing-unnecessary-packages
Понял, а редирект подключения вебсокета для чата и сокета тцп, это всё уже на нгине в конфу забивать? Я просто новичёк так то в девопсинге и пр. Все доки на композер искать на официальной странице?
Kota
Доброй ночи, товарищи Сабж. На домашнем сервере-шлюзе стоит докер с контейнерами (сайты, базы данных), домены направлены на статический ipv4. Настроил на домашнем сервере-шлюзе получение ipv6, и раздачу его в локалку. Что бы на компе он работал. В итоге сервер становится недоступен по ipv4. И сайты не открываюся. Подскажите как рещить данную проблему?
Konstantin
location proxy_pass ткнуть и только. По nginx смотреть доки nginx, по образу смотреть докерхаб
Спасибо! Если будут конкретные вопросы, буду обращаться. И, если можно, какой-нибудь более менее композ файл такого микрокластера если есть под рукой кинуть пример или тогда уже сам поищу завтра.
Je
не, нету, что можно кинуть, сорри
Anton
Ребята, такой кейс. На хостовой машине есть mysql lxc контейнер. Я хочу поднять докер контейнер с мускулем и из него мигрировать базы в докер. Реально ли из докер контейнера достучаться до хоста чтобы сделать mysqldump?
Anton
Че ты хочешь, чтобы на хостовой машине dump.sql остался?
нет, я хочу сразу restore сделать в докер mysql
Anton
мне надо как то мигрировать из lxc mysql => docker mysql
Anton
все базы
Anton
как то папки вроде можно шарить
Anton
но подумал я могу по айпи или хосту к мускулю в lxc подключиться и сдампить
Ruslan
Привет всем, как мне крон настроить? Сейчас на самой машине в crontab пишу * * * * * docker-compose -f /var/www/site/docker-compose.yml exec -T php php /src/yii cron >/var/log/somelogfile.log 2>&1 но в логе пишет /bin/sh: 1: docker-compose: not found
Ilya
Which docker-compose
Юрий
Народ, а можно сделать чтобы контейнер слушал порт, но при этом не пробрасывать его наружу. Т.е. в докерфайле нет expose