@docker_ru
Docker — русскоговорящее сообщество

Обсуждаем вопросы, посвященные Docker🐳, Docker Swarm и всей экосистеме. Обмениваем идеями, новостями и решаем пробемы. Вам могут быть полезны: @coreos_ru, @kubernetes_ru, @devops_ru, @rkt_ru Рекомендуем сразу отключить уведомления для удобства

2608 members

Архив канала @docker_ru 1 ноября 2016 г.

07:32:36 ДП
User 118473437
User 228403837
так это... все же подниму вопрос. onbuild или не onbuild?
Сергей, возможно тебе проще разбить задачу на несколько этапов, написать конфиги и дергать образы для выполнения определенных задач с последующим их удалением?
08:03:24 ДП
User 228403837
@protopopys можешь поподробнее?
08:25:59 ДП
User 118473437
К сожалению я не знаю какие задачи ты решаешь, читал на хабре статью по поводу использования докера. Там ребята разбили всю задачу на мелкие этапы, после которых контейнер удалялся. Допустим собираем веб приложение на java. Node, для сборки фронта тянет просто вагон и маленькую тележку, затем все это кушает gradle и на выходе мы получаем варник. Можно весь данный процесс разбить на этапы и какой-нибудь teamcity  будет дергать контейнеры с --rm
08:29:58 ДП
User 228403837
если что, сборка из Dockerfile так и происходит. На каждую отдельную инструкцию создается промежуточный контейнер, который после выполнения инструкции удаляется.
08:30:19 ДП
User 228403837
и то что ты описываешь используется зачастую что бы обойти ограничения вроде отсутствия возможности волумы прописывать.
08:31:42 ДП
User 228403837
меня больше интересует способ делать это на уровне Dockerfile нежели несколько образов пилить
08:34:28 ДП
User 118473437
Тогда вопрос к тебе, столкнулся с проблемой - если я прокидываю папку - /etc/** на хост, стартую софтину и получаю - Failed to find config filename/ Если же ничего не прокидываем то все ок, просто ошибка в конфиге (т.к дефолтный) - Please correct the configuration in /etc/**/**.conf
08:37:06 ДП
User 228403837
то есть ты волум прокидываешь с хоста в контейнер или что?
08:41:13 ДП
User 89706347
@protopopys ты, случаем, не из под винды с докертулбоксом сидишь?)
08:41:30 ДП
User 89779278
нет еще
08:41:38 ДП
User 89779278
звиняйте не туда
08:42:21 ДП
User 118473437
я на маке сижу. docker на  vm CentOS_7 юзаю
08:45:41 ДП
User 148346163
О, узнаю твою аву
На тостере тебя видел 100 раз
08:45:41 ДП
User 148346163
то есть ты волум прокидываешь с хоста в контейнер или что?
08:46:32 ДП
User 228403837
@devanboo хз почему но звучит обидно)
08:46:56 ДП
User 148346163
Ты вроде в Symfony
08:46:57 ДП
08:46:59 ДП
User 148346163
Отлично шаришь
08:47:09 ДП
User 228403837
похапэшник короч я
08:47:22 ДП
User 148346163
Вроде как на тостере только твои ответы по данным фреймам адекватны
08:48:07 ДП
User 118473437
Понял я свой косяк.
08:50:04 ДП
User 228403837
@devanboo там есть еще пара чуваков адекватных в этой теме, просто они реже там тусуются
10:29:39 ДП
User 89706347
о, пока тут похапешники тусуются, вот моя задумка по поводу автоматизации композера и миграций:

я думал автоматизировать это дело через RUN, ведь тебе нужно обновлять композер всегда, когда обновился композер джейсон, и надо запускать миграции, когда добавился файл в папку
понятное дело, что если нужно сделать роллбэк или просто обновить пакеты до новых версий, то делать это руками
но наиболее частые применения можно автоматизировать
10:30:32 ДП
User 89706347
но рану нужно четко донести, что он должен пересобираться только при изменении файла композера или папки миграции
10:31:15 ДП
User 164670195
я наверное щас сморожу дикую хуйню, но bash скрипт?
10:32:32 ДП
User 77550740
Миграции через Dockerfile гонять не надо
10:34:32 ДП
User 89706347
почему не надо? если ты стянул из гита новую миграцию, и не ывполнил ее, то твой проект в не консистентном состоянии
10:35:00 ДП
User 89706347
ибо чувакзалил код, который работает только с новой версией бд, а у тебя она старая, пока ты не накатишь миграцию
11:08:19 ДП
User 77550740
Поэтому ты вручную подымаешь миграцию
11:08:38 ДП
User 228403837
миграции при старте контейнера а не при сборке образа
11:08:49 ДП
User 228403837
я их пихаю в bin/boot.sh
11:09:14 ДП
User 228403837
оно заодно дожидается соединения с базой данных и т.д.
11:09:29 ДП
User 228403837
а если надо сделать zero-downtime
11:09:49 ДП
User 228403837
ты можешь рядом запустить отдельный контейнер с новым кодом, накатить миграции, откатить миграции и потом уже апать контейнер а апой
11:10:37 ДП
User 77550740
Если надо zero-downtime то пилятся миграции таким образом чтобы они занимали почти нулевое время по выполнению и как правило накатываются в несколько шагов
11:11:34 ДП
User 228403837
почему почти нулевое? Они могут хоть пол часа накатыватся, они просто не должны влиять на работу приложения
11:11:38 ДП
User 228403837
полная обратная совместимость
11:11:42 ДП
User 228403837
добавил поле - оно нулабл
11:12:03 ДП
User 77550740
а, ну да. Я просто говорил про mysql
11:12:10 ДП
User 77550740
его здравые люди не юзают.
11:12:33 ДП
User 77550740
я забыл что в постгрессе смена схемы транзакционная
11:13:07 ДП
User 228403837
да, я тоже привык уже к постгресу)
11:26:40 ДП
User 200967190
Попросил сделать тег "Devops" на Тостере - сделали. Можно попросить администрацию Тостера сделать тег "Docker"
11:27:29 ДП
User 77550740
а смысл в тостере?
11:27:33 ДП
User 77550740
есть SO/Сетка
12:02:54 ПП
User 228403837
User 77550740
а смысл в тостере?
Когда это был Q/A на хабре смысл был
12:03:05 ПП
User 77550740
Ну так сейчас то нету.
12:03:09 ПП
User 77550740
А раньше лучше было да?
12:03:36 ПП
User 228403837
там каждый день было по 2-3 интересных вопроса
12:03:38 ПП
User 77550740
(я просто не юзал никогда, только ссылку видел)
12:03:42 ПП
User 228403837
и много позновательных ответов
12:04:04 ПП
User 228403837
ну то есть не вопросы из разряда "какой фреймворк выбрать" или "как начать писать на js"
12:04:11 ПП
User 89706347
я гоа полтора-два назад там активно зависал
12:04:41 ПП
User 228403837
там сейчас раз в неделю просто не тупой вопрос проскакивает
01:24:33 ПП
User 202319269
Народ, а какая конфигурация должна быть у nginx, чтобы он делал ssl для registry?
И nginx и registry в контейнере, но когда я поднимаю всё это  - nginx как-будто бы ничего не видит
01:24:48 ПП
User 202319269
upstream docker-registry {
  server ${HOSTNAME}:5000 fail_timeout=0;
}

server {
  listen 443 ssl;

  ssl on;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_certificate /etc/nginx/ssl/cert.crt;
  ssl_certificate_key /etc/nginx/ssl/cert.key;

  # set HSTS-Header because we only allow https traffic
  add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

  proxy_set_header Host       $http_host;   # required for Docker client sake
  proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP

  client_max_body_size 0;

  # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
  chunked_transfer_encoding on;

  location / {
      auth_basic              "Restricted";
      auth_basic_user_file    registry.htpasswd;
      proxy_pass http://docker-registry;
  }
  location /_ping {
      auth_basic off;
      proxy_pass http://docker-registry;
  }
  location /v1/_ping {
      auth_basic off;
      proxy_pass http://docker-registry;
  }
  location /v2/ {
    if ($http_user_agent ~ "^(docker\/1\.(3|4|5(?!\.[0-9]-dev))|Go ).*\$" ) {
      return 404;
    }

    # To add basic authentication to v2 use auth_basic setting plus add_header
    auth_basic "Registry realm";
    auth_basic_user_file    registry.htpasswd;
    add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always;

    proxy_pass                          http://docker-registry;
    proxy_set_header  Host              $http_host;   # required for docker client's sake
    proxy_set_header  X-Real-IP         $remote_addr; # pass on real client's IP
    proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto $scheme;
    proxy_read_timeout                  900;
  }
}
github.com/moby/moby/issues/1486
Pushing / pulling from a private registry does not seem to be working as I would expect. Here is the setup: I have an image I built, tagged with /meltmedia/base where points to...
01:44:54 ПП
User 249202250
Всем привет) Я ZaArs ^^
05:52:17 ПП
User 77550740
Мы все поняли.
06:19:05 ПП
User 228403837
> чтобы он делал ssl для registry?

там в документации к docker distribution же все есть
06:25:50 ПП
User 70615624
Хай всем. Кто-то Rancher`ом пользуется?
06:26:17 ПП
User 77550740
Уже спрашивали вчера или позавчера )
06:30:02 ПП
User 70615624
А у кого-то был такой баг: https://github.com/rancher/rancher/issues/6406
Или это тольк в rc версии?
06:35:29 ПП
User 281412419
всем привет, возникла тут необходимость упихать в Dockerfile очень старый legacy deb пакет (пересобрать который уже нельзя), у которого в зависимостях есть supervisor и этот самый supervisor активно используется в postinstall \ preinstall скриптах пакета
при попытке сделать docker build внутри которого есть 

RUN apt-get install -y supervisor && service supervisor start && apt-get install -y my-package=XXX && service supervisor stop

при запуске preinstall скрипта пакета 
получаю
supervisorctl status
unix:///var/run/supervisor.sock no such file

как так??? в момент build нельзя стартануть supervisor ? или что-то происходит с /var/run ?

смотрю по логам 
есть странная строчка

invoke-rc.d: policy-rc.d denied execution of start.

или нельзя использовать service supervisor start во время build ?
06:40:59 ПП
User 281412419
да, судя по логам service supervisor start вообще никак не отрабатывает, да еще и судя по гуглу, это вообще особенность базового образа убунты =)
06:43:09 ПП
User 54466621
а зачем он нужен?
06:43:32 ПП
User 54466621
пакет как-то его запускает или проверяет?
06:55:19 ПП
User 281412419
да, я написал, пакет имеет в своем составе /etc/supervisor/conf.d/mypackage.conf делаеет всякие supervisorctl reread , supervisorctl stop \ start чтобы свои бинари запустить и поменять преинстал скрипты пакета нереально
06:56:03 ПП
User 281412419
но в целом разобрался уже

вместо service
bash -x /etc/init.d/supervisor start
и  после сетапа пакета
bash -x /etc/init.d/supervisor stop
06:56:31 ПП
User 281412419
там бинарник который из под супервизор пускался, я его все равно через CMD потом запущу при старте пакета
07:03:17 ПП
User 228403837
можно ли как-то быстро сделать временную копию текущего контейнера?
07:03:28 ПП
User 228403837
кроме как docker commit && docker start