George
в чате куба врутковс, который всех банит
George
)))
inqfen
Ломает порочный круг
victor
сдвиг по фазе, матьего
"матьего" - это как "амиго" только по-девопсовски)
Alex
не используй dind, пробрось с хоста socket в настройках раннера и использую в джобе образ docker:18-git это alpine с git и клиентом докер
Согласен на 100% только я позже до этого дошёл - без возни с этим dindom - пробросил сокет - но минус в этом что на раннере образы будут складироваться в случае с диндом контейнер отработал образы в нем собрал - отправил в хранилище - и dind контейнер дропнулся после завершения пайплайна gitlaba
Alex
но можно в пайплайне написать что бы образ после пуша в хранилище удалялся на раннере - покрайней мере так я и сделал
George
вообще это плохая история
George
т.к. если пайплайн не добежит до конца (а такая вероятность есть всегда), то образ навсегда останется на раннере
Roman
Какой вариант предпочтительнее? 1. Скачивать и собирать исходники на хосте, в контейнер помещать уже готовые бинарники. 2. Скачивать исходники на хосте, но собирать в контейнере. 3. Скачивать и собирать исходники сразу в контейнере.
inqfen
А что в докерфайле мешает скачивание организовать?
Roman
Ничего, но хорошая ли это практика?
Roman
К тому же, контейнер может разворачиваться в среде с ограниченным или отстутствующим интернетом
Roman
Какой из 3 вариантов вы обычно используете?
inqfen
Так контейнер разворачивается из образа
inqfen
В образе уже все собрано
inqfen
Это ты в ci при сборке делаешь и это должно быть в докерфайле
George
2.
George
или 3. По ситуации.
George
точне не 1
George
вообще на самом деле вопрос с подвохом, т.к. не рассмотрен кейс, когда компиляция или сборка делается с промежуточным контейнером, в котором находится тулинг....
George
т.е. собирать все в одном докерфайле - шляпа какая-то
inqfen
Вполне нормально
George
что нормально?
inqfen
Иногда нужно только мульиистейджинг добавить
George
мультистейдж говнище еще то
inqfen
что нормально?
Делать так, чтобы сборка была описана в 1 месте, а не в нескольких
George
у тебя разные ситуации
George
нафиг мне нужна сборка, если я потом тот же артефакт (бинарь, а не докер-образ) не могу поотлаживать ?
George
или ты мне предлагаешь потом его оттуда выцеплять docker cp? Весь мир пока что на докере не замкнулся, слава Богу )
George
я уж не говорю о том, что докер файла для нормальной сборки попросту недостаточно.
George
🤦‍♂️
inqfen
А некоторый комплекс того, что у тебя есть
George
мои разрабы вообще у себя в локальной разработке докер отрицают. Питон, виртуаленв и все прочее. В докер пакуется тогда, когда оно поехало в тесты, стейдж и прод
George
А некоторый комплекс того, что у тебя есть
все что вокруг - теоретически можно замокать. А тем более этот разговор бессмысленен, если у тебя консольная утилита
inqfen
мои разрабы вообще у себя в локальной разработке докер отрицают. Питон, виртуаленв и все прочее. В докер пакуется тогда, когда оно поехало в тесты, стейдж и прод
А потом оказывается, что у всех разрабов разные версии сишных либ, над которыми обертки в venv и работает оно как-то странно
George
для этого есть тесты )
inqfen
Я сам себе такое ловил
George
и да, докер не спасает
George
там есть куча нюансов (например, с теми же портами и теми же вольюмами) - где может взорваться
inqfen
2 компа, домашний и рабочий, и там и там venv, интерпретаторы одинаковы, модули одинаковы
George
да и образы от какого-нибудь условного докер 19.03 не обязательно стартанут на 1.13
Alex
Не как не могу понять что происходить с этим контейнером - то есть провести инспект работающего контейнера - тут все очень просто - собрал образ с руби приложением FROM ruby:2.3 ENV HOME /opt/www/auth-service RUN apt-get update -qq && apt-get install -y \ build-essential \ libpq-dev \ nodejs WORKDIR $HOME COPY Gemfile* $HOME/ RUN bundle install COPY . $HOME/ EXPOSE 3005 CMD ["sleep", "10000"] запустил контейнер на основе этого образа 492055fe5af2 auth-service:latest "sleep 10000" 8 minutes ago Up 8 minutes 0.0.0.0:3005->3005/tcp auth-service-latest подключился в его и запустил сервер (как пойму что не так уже запуск самого сервера сделаю в докерфайле) запустил сервер на 3005 порту - тут все хорошо в netstate tcp6 0 0 :::3005 :::* LISTEN 15313/docker-proxy тоже все слушаеться затем делаю: root@auth-service:~# curl -L http://localhost:3005 curl: (52) Empty reply from server root@auth-service:~# то есть не как на сам сервере где и запустил контейнер не могу получить сайт - а там уже nginx и так далее это уже сделаеться
Alex
Alex
это в контейнере - что бы убедиться что сервер стартанулся
ЕЛЬКИН
Ну, если кратко: маленькая ИТ компания CRM-BPM говна на ноде, крутимся на серверах амазона и там все клево. Но т.к. теперь клиентура из правительства - переезжать надо на яндехи. Никто у нас в докеры и кубернетесы не умеет, а в штат брать смысла нет - ибо проекты такие не очень часто, но регулярно. Интересно продолжительное сотрудничество(ибо это надо ещё поддерживать будет). По деньгам я хз, но они есть. Находимся локально в Казани, но удаленка тоже вариант.
victor
Ребята, подскажите, пожалуйста - часто вижу такую конструкцию в ДФ: # make Apt non-interactive RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90-xxx \ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90-xxx ENV DEBIAN_FRONTEND=noninteractiveчем просто -y плохо-то?
Alex
Не как не могу понять что происходить с этим контейнером - то есть провести инспект работающего контейнера - тут все очень просто - собрал образ с руби приложением FROM ruby:2.3 ENV HOME /opt/www/auth-service RUN apt-get update -qq && apt-get install -y \ build-essential \ libpq-dev \ nodejs WORKDIR $HOME COPY Gemfile* $HOME/ RUN bundle install COPY . $HOME/ EXPOSE 3005 CMD ["sleep", "10000"] запустил контейнер на основе этого образа 492055fe5af2 auth-service:latest "sleep 10000" 8 minutes ago Up 8 minutes 0.0.0.0:3005->3005/tcp auth-service-latest подключился в его и запустил сервер (как пойму что не так уже запуск самого сервера сделаю в докерфайле) запустил сервер на 3005 порту - тут все хорошо в netstate tcp6 0 0 :::3005 :::* LISTEN 15313/docker-proxy тоже все слушаеться затем делаю: root@auth-service:~# curl -L http://localhost:3005 curl: (52) Empty reply from server root@auth-service:~# то есть не как на сам сервере где и запустил контейнер не могу получить сайт - а там уже nginx и так далее это уже сделаеться
разобрался - кому интерестно важно rails server было запустить как: rails server --binding 0.0.0.0 --port 3005 потом проверить какой ip у контейнера: docker inspect 492055fe5af2 | grep IPAddress и потом по этому адресу уже подключаться: curl -L http://172.17.0.2:3005 так все работает но если будет много контейнеров и они будут перезапускаться то ip будет меняться (а в nginx надо будет проксирование сделать по статическому ip) думаю в этом случае нужно создавать отдельную сеть: docker network create --subnet=172.20.0.0/16 mynet и в ней запускать контейнер жестко привязав ip docker run --net mynet --ip 172.20.0.10 -it ubuntu bash если у кого на этот счет есть мысли дайте пожалуста знать
George
не ENV, а ARG DEBIAN_FRONTEND=noninteractive потому что иначе у тебя apt даже в работающем контейнере будет в нон-интерактив моуд и отвечать на все вопросы автоматом (т.е. это просто как руки не помыть)
George
касательно почему noninteractive, а не просто -y - потому что -y не подавляет диалоговые окна с настрокйами пакетов
Welis
Привет народ. У меня при docker-compose build web не показывается процесс сборки, показан только Building web $ docker-compose build web Building web и место на диске уменьшаеться, с чем это связано?
George
возможно он контекст в докер передает? У тебя в текущем каталоге с докер-компоузом - сколько файлов (объем в ГиБ?)
George
.dockerignore для файлов, которые не должны попадать в образ
George
формат такой же как у .gitignore
Dmitry Kosarevsky
Привет. Подскажите где в винде найти Dockerfile? Нужно в него прописать зависимости для успешной отработки скриптов (airflow)
George
> Подскажите где в винде найти Dockerfile? ????
Welis
он может склонировал какой-то проект и хочет что-то изменить
Dmitry Kosarevsky
он может склонировал какой-то проект и хочет что-то изменить
Именно так. Но непонятно где в винде это всё увидеть
Welis
причем тут винда ?
я от куда знаю)
Дмитрий
Кто что юзает для администрирования серваков с квм? Ovirt и opennebula чет не зашли.
CHIP
С легкой задержкой публикую и я о #docker на #windows https://blog.docker.com/2019/07/5-things-docker-desktop-wsl2-tech-preview/
Дмитрий
мне в браузере тыкать надо. и несколько серваков в кучу собрать
tfhx8
народ, кто нибудь отлаживает код на python nginx uwsgi и все это в докере через ipdb ?
George
потому что он навязывает не самый оптимальный флоу
George
а еще если ты пытаешься собрать докерфайл с несколькими целями (скажем -test, -dev, -prod) и -prod у тебя не последний, то по умолчанию собирается полседняя цель