@docker_ru

Страница 53 из 1375
Sergey
30.10.2016
21:03:48
> Vadim у меня база с метриками в контейнере ну так перенеси базу данных в волум, это не сильно сложно

Vadim
30.10.2016
21:13:06
понял, спасибо за ответы

Andrey
30.10.2016
21:13:36
#whois Всем привет ▫️Админ в inplat.ru ▫️Всего понемногу. Linux, виртуализация, SCM, БД, CI ▫️Не наю ▫️Опыт, best practices ▫️Москва ▫️@devops_ru

Евгений
31.10.2016
08:48:58
reverse-proxy нужен что-бы пробрасывать http/https трафик до сервис контейнеров
На чем сошлись? Как лучше статику подключать ? 1. Запихнуть в контейнер. Волюм из контейнера прислонить в фс и натравить на неё nginx. 2. Положить статику внутрь, отдавать ее в nginx как и все остальное через proxy_pass, тот Ее себе аккуратно сложит на диск с помощью proxy_cache. И дальше будет пулеметом раздавать. 3. Сделать отдельную сборку и отдельно выкладывать.

Google
Евгений
31.10.2016
09:00:38
Коллеги, а кто игрался с flynn.io? Этакий PaaS из грязи и веток в домашних усвлояих? Прям полноценный домашний Heroku.com Обещают из коробки нормальное разорачивание контейнеров, связывание всего добра воедино, настройку базы(!), причем ставят сразу 3 ноды на разные сервера и организуют отказоустойчивость и автопереключение выпадающих нод.

Bogdan (SirEdvin)
31.10.2016
10:06:28
Добрый день. Может кто подсказать по клиентским сертификатам в nginx? Делаю все по этой инструкции: http://nategood.com/client-side-certificate-authentication-in-ngi (только ssl_verify_client on и ключи перегоняю в ключи без паролей) и мне nginx все равно постоянно возвращает такой ответ: < HTTP/1.1 400 Bad Request < Server: nginx/1.10.0 (Ubuntu) < Date: Mon, 31 Oct 2016 10:03:22 GMT < Content-Type: text/html < Content-Length: 240 < Connection: close

Alex
31.10.2016
10:07:36
Включи полный debug лог и смотри на что ругается.

Kirill
31.10.2016
10:09:31
https://letsencrypt.org/ юзай

Bogdan (SirEdvin)
31.10.2016
10:11:19
Похоже, нашел только такое: *2 client SSL certificate verify error: (18:self signed certificate) while reading client request headers, client: 138.201.244.18, server: loansinfo.com.ua, request: "GET / HTTP/1.1", host: "loansinfo.com.ua"

https://letsencrypt.org/ юзай
С самоподписанными сертификатами клиентскую авторизацию не реализовать?

Kirill
31.10.2016
10:12:00
реализовать конечно

Bogdan (SirEdvin)
31.10.2016
10:15:25
реализовать конечно
Это просто тестовая площадка, которую надо запустить один раз и убить, поэтому пока так

Kirill
31.10.2016
10:18:12
Это просто тестовая площадка, которую надо запустить один раз и убить, поэтому пока так
server { listen 80; server_name ХХХХХ.ru; return 301 https://ХХХХХ$request_uri; error_log /var/log/nginx/ХХХХ.error; } server { listen 443 ssl; server_name ХХХХ.ru; ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_certificate /etc/letsencrypt/live/ХХХ.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ХХХ.ru/privkey.pem; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/ХХХХХ.ru/chain.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000;"; add_header Content-Security-Policy-Report-Only "default-src https:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data:; font-src https: data:; report-uri /csp-report"; location / {

Kirill
31.10.2016
10:20:13
Логи - наше ВСЁ

Bogdan (SirEdvin)
31.10.2016
10:22:12
Ну, у меня есть оправдание - температура мешает думать :)

Google
Alex
31.10.2016
14:25:28
Гайз, а вольюмы в докере это типа шаред директория, всё верно?

Kirill
31.10.2016
14:26:28
Да

Sergey
31.10.2016
14:26:53
Это больше на маунт просто похоже

Alex
31.10.2016
14:27:40
Я хочу локальную директорию замаунтить как директорию с конфигом энджинкса в контенере. Типа -v /something:/etc/nginx

И чтобы из директории энджинкса ничего не пропало.

Kirill
31.10.2016
14:28:26
Встречный вопрос, имеем контейнер в котором идет установка bareos, но при установке (как я понимаю из ошибки) не создаются конфиги ..

Sergey
31.10.2016
14:28:42
ребят, у меня вопрос по поводу onbuild и кэширования. Допустим у меня есть образ A с onbuild инструкцией которая что-то делает. А делает она установку зависимостей. И есть контейнер B в котором еще какие-то операции. Не будет ли так, что поскольку onbuild инструкции всегда будут выполняться (там же есть копирование файлов) то это будет вызывать полный ребилд всех дочерних образов?

Kirill
31.10.2016
14:28:51
Встречали такое?

Sergey
31.10.2016
14:28:54
@ads_alpha ну так делай)

Nomadic
31.10.2016
14:28:57
учти что /etc/nginx будет полностью заменена на содержимое /something

Sergey
31.10.2016
14:29:04
@ads_alpha я так в dev делаю

Alex
31.10.2016
14:29:15
У меня были сомнения.

Тогда надо всё то счастье из стандартного /etc/nginx поставить в отдельную папку и маунтить.

Nomadic
31.10.2016
14:30:32
монтировать только определенный файл с конфигом в /etc/nginx/conf.d/

Alex
31.10.2016
14:31:16
монтировать только определенный файл с конфигом в /etc/nginx/conf.d/
Мне надо в sites-available/sites-enabled, но там принцип вроде такой же… Ладно, подумаю.

Nomadic
31.10.2016
14:32:20
можно сразу в /etc/nginx/sites-enabled чтоб не возится с симликами еще

Anton
31.10.2016
15:28:09
в докер-композе build выполняется до подключения volum'ов?

Alexander
31.10.2016
15:32:45
volume подключаются во время запуска

Anton
31.10.2016
15:46:10
т.е. нельзя при использовании билда подключить вольюм в самом докер-композе?

Google
Kirill
31.10.2016
16:07:38
Сначала идет сборка build, на данном этапе идет сборка образа из Dockerfile или же просто скачивание если юзаем стандартный image , далее up, настроки сети ,волумы и так далее взлетают на данном этапе.

Если не прав, сильно пинайте.

Sergey
31.10.2016
16:58:10
Anton на данный момент нельзя юзать волумы при сборке (в промежуточных контейнерах). Тикет об этом есть в ишус трекере докера, и даже есть сторонние запатченные докер демоны где эта возможность есть (мне например ее не хватает).

https://github.com/docker/docker/issues/14080

Andrew
31.10.2016
17:01:01
в rocker для примерно этого есть mount

Sergey
31.10.2016
22:05:12
так это... все же подниму вопрос. onbuild или не onbuild?

например... есть менеджер пакетов который ставит зависимости. и сейчас я вызываю его до сборки образа. Это выливается в то, что вместо того что бы залить пол мегабайта приложения, льется внутрь 100 метров зависимостей + пол мегабайта приложения. Как следствие - увеличение времени сборки (ажно на 10-15 секунд!), увеличение размера образов и т.д. Есть вариант запихнуть в onbuild у родительского образа инструкции необходимые для установки всего и вся, но в этом случае в контейнер запихиваются вещи, необходимые исключительно для скачивания зависимостей (например git). Более того, при изменениях в зависимостях происходит полный ребилд дочернего образа (не то что бы сильно долго но все же). Так же отсутствует возможность использование кэша (проектов у меня много, где-то 80% зависимостей можно кешировать, одинаковые).

что делать? как жить?

p.s. изменения в зависимостях происходит максимум у одной сборки из 10-ти.

Kirill
01.11.2016
07:32:36
так это... все же подниму вопрос. onbuild или не onbuild?
Сергей, возможно тебе проще разбить задачу на несколько этапов, написать конфиги и дергать образы для выполнения определенных задач с последующим их удалением?

Sergey
01.11.2016
08:03:24
@protopopys можешь поподробнее?

Kirill
01.11.2016
08:25:59
К сожалению я не знаю какие задачи ты решаешь, читал на хабре статью по поводу использования докера. Там ребята разбили всю задачу на мелкие этапы, после которых контейнер удалялся. Допустим собираем веб приложение на java. Node, для сборки фронта тянет просто вагон и маленькую тележку, затем все это кушает gradle и на выходе мы получаем варник. Можно весь данный процесс разбить на этапы и какой-нибудь teamcity будет дергать контейнеры с --rm

Sergey
01.11.2016
08:29:58
если что, сборка из Dockerfile так и происходит. На каждую отдельную инструкцию создается промежуточный контейнер, который после выполнения инструкции удаляется.

и то что ты описываешь используется зачастую что бы обойти ограничения вроде отсутствия возможности волумы прописывать.

меня больше интересует способ делать это на уровне Dockerfile нежели несколько образов пилить

Kirill
01.11.2016
08:34:28
Тогда вопрос к тебе, столкнулся с проблемой - если я прокидываю папку - /etc/** на хост, стартую софтину и получаю - Failed to find config filename/ Если же ничего не прокидываем то все ок, просто ошибка в конфиге (т.к дефолтный) - Please correct the configuration in /etc/**/**.conf

Sergey
01.11.2016
08:37:06
то есть ты волум прокидываешь с хоста в контейнер или что?

Anton
01.11.2016
08:41:13
@protopopys ты, случаем, не из под винды с докертулбоксом сидишь?)

Владимир
01.11.2016
08:41:30
нет еще

звиняйте не туда

Google
Kirill
01.11.2016
08:42:21
я на маке сижу. docker на vm CentOS_7 юзаю

Daniel
01.11.2016
08:45:41
О, узнаю твою аву На тостере тебя видел 100 раз

то есть ты волум прокидываешь с хоста в контейнер или что?

Sergey
01.11.2016
08:46:32
@devanboo хз почему но звучит обидно)

Daniel
01.11.2016
08:46:56
Ты вроде в Symfony

Laravel

Отлично шаришь

Sergey
01.11.2016
08:47:09
похапэшник короч я

Daniel
01.11.2016
08:47:22
Вроде как на тостере только твои ответы по данным фреймам адекватны

Kirill
01.11.2016
08:48:07
Понял я свой косяк.

Sergey
01.11.2016
08:50:04
@devanboo там есть еще пара чуваков адекватных в этой теме, просто они реже там тусуются

Anton
01.11.2016
10:29:39
о, пока тут похапешники тусуются, вот моя задумка по поводу автоматизации композера и миграций: я думал автоматизировать это дело через RUN, ведь тебе нужно обновлять композер всегда, когда обновился композер джейсон, и надо запускать миграции, когда добавился файл в папку понятное дело, что если нужно сделать роллбэк или просто обновить пакеты до новых версий, то делать это руками но наиболее частые применения можно автоматизировать

но рану нужно четко донести, что он должен пересобираться только при изменении файла композера или папки миграции

Vadim
01.11.2016
10:31:15
я наверное щас сморожу дикую хуйню, но bash скрипт?

Alex
01.11.2016
10:32:32
Миграции через Dockerfile гонять не надо

Anton
01.11.2016
10:34:32
почему не надо? если ты стянул из гита новую миграцию, и не ывполнил ее, то твой проект в не консистентном состоянии

ибо чувакзалил код, который работает только с новой версией бд, а у тебя она старая, пока ты не накатишь миграцию

Alex
01.11.2016
11:08:19
Поэтому ты вручную подымаешь миграцию

Sergey
01.11.2016
11:08:38
миграции при старте контейнера а не при сборке образа

я их пихаю в bin/boot.sh

Google
Sergey
01.11.2016
11:09:14
оно заодно дожидается соединения с базой данных и т.д.

а если надо сделать zero-downtime

ты можешь рядом запустить отдельный контейнер с новым кодом, накатить миграции, откатить миграции и потом уже апать контейнер а апой

Alex
01.11.2016
11:10:37
Если надо zero-downtime то пилятся миграции таким образом чтобы они занимали почти нулевое время по выполнению и как правило накатываются в несколько шагов

Sergey
01.11.2016
11:11:34
почему почти нулевое? Они могут хоть пол часа накатыватся, они просто не должны влиять на работу приложения

полная обратная совместимость

добавил поле - оно нулабл

Alex
01.11.2016
11:12:03
а, ну да. Я просто говорил про mysql

его здравые люди не юзают.

я забыл что в постгрессе смена схемы транзакционная

Sergey
01.11.2016
11:13:07
да, я тоже привык уже к постгресу)

Anton
01.11.2016
11:26:40
Попросил сделать тег "Devops" на Тостере - сделали. Можно попросить администрацию Тостера сделать тег "Docker"

Alex
01.11.2016
11:27:29
а смысл в тостере?

есть SO/Сетка

Sergey
01.11.2016
12:02:54
а смысл в тостере?
Когда это был Q/A на хабре смысл был

Alex
01.11.2016
12:03:05
Ну так сейчас то нету.

А раньше лучше было да?

Sergey
01.11.2016
12:03:36
там каждый день было по 2-3 интересных вопроса

Alex
01.11.2016
12:03:38
(я просто не юзал никогда, только ссылку видел)

Страница 53 из 1375