
N
26.12.2016
17:32:23
В chkconfig стоит on для уровня 0
Amazon Linux, то есть по сути centos

Anatoly
26.12.2016
17:46:25

N
26.12.2016
17:46:45
Добавлял, тоже не работает

Google

N
26.12.2016
17:47:12
Есть подозрение, что дело в S00killall

ptchol
26.12.2016
19:06:56
Сукиллолл
ребят а у меня вопрос по бестпрактисам сборки контейнеров.
У вас есть автоматические сборки контейнеров по результатам создания тега ? Или всегда собираете из одной ветки только, к примеру мастера ?

Anton
26.12.2016
19:30:16
ну по ci циклу прокатили - qа сказали ок
лепим тег, пушим куда хотим

Ivan
26.12.2016
19:37:59
Два тэга: номер версии и latest

Magistr
27.12.2016
03:55:12

Max
27.12.2016
05:15:14

Phil
27.12.2016
07:03:27

Magistr
27.12.2016
07:05:33

Phil
27.12.2016
07:07:34
И в доке вроде прямо в примерах вбито

Виталий
27.12.2016
12:14:23
Сообество, подскажи мне как правильно настроить права на папки и файлы внутри контейнеров?
Есть 3 контейнера:
app = data-volume контейнер с кодом приложения
php = php-fpm
nginx = nginx
Контейнер app собирается из вот такого Dockerfile
—-
FROM busybox:musl
COPY ./source /var/www/html
WORKDIR /var/www/html
VOLUME ["/var/www/html"]
—-
и конечно он через volumes-from маунтит раздел /var/www/html к nginx и php контейнерам.
После запуска контейнеров файлы из раздела /var/www/html получают права root:root что, как мне кажется не есть правильным.
Как это правильно решить в разрезе докера?

Google

Evgeny
27.12.2016
12:16:08
Сделать внутри юзера и работать из под него

Виталий
27.12.2016
12:19:03
Смотри в чем проблема. Когда собирается контейнер app, он ничего не знает про другие два контейнера да и вообще кто будет его маунтить он не знает.
Я могу конечно в Dockerfile контейнера app написанть команды создания юзера, сменить владельца файлов и тд... но на кого менять?
Вообще владельцем файлов должен быть юзер www-data (от него php-fpm работат). Но этот юзер на момент сборки есть в контейнера php, а не в app.

Evgeny
27.12.2016
12:19:33
На момент сборки заведи этого юзера и расшарь его создание между имаджами
потом все из под него

Виталий
27.12.2016
12:20:01
а что значит расшарить между имаджами?

Evgeny
27.12.2016
12:20:16
Ну использовать кеш сборки
И будет у тебя во всех контейнерах один юзер
https://docs.docker.com/engine/reference/builder/#/user

Виталий
27.12.2016
12:21:26
эм... счас не понял, каким боком кеш сборки иемет отношение к команде USER из докерфайла.
И я уже смотрел на команду USER. Но она меняет юзера только для RUN, CMD and ENTRYPOINT
а на COPY и ADD не влияет, я попробовал :)

Evgeny
27.12.2016
12:21:55
А у тебя внутри запускается же команда внутри контейнера через одну из этих команд, не?
А...

Виталий
27.12.2016
12:22:32
не, сорцы проекта копируются в контейнер командами котоыре предлагает сам Dockerfile

Evgeny
27.12.2016
12:22:36
Ну тогда костылем - либо перед сборкой менять овнера, либо внутри при сборке.ЛУчше снаружи

Виталий
27.12.2016
12:23:02
костыли не нужны, надо нормальнй вариант.
все же одна инфраструктура, должен быть выход

Evgeny
27.12.2016
12:23:41
Если у тебя все работает больше чем на одной машине - нормального варианта я не знаю.

Alex Milushev
27.12.2016
12:23:49

Andrey
27.12.2016
12:23:50

Evgeny
27.12.2016
12:24:00

Google

Alex Milushev
27.12.2016
12:24:11
ну да
из вариантов использовать магию тарболов

Виталий
27.12.2016
12:24:48
у меня alpine везде пока что, но все равно я бы не завязывался

Evgeny
27.12.2016
12:25:09
Но, насколько мне известно, нет нормального варианта это все разрулить - нужно немного своих костылей

Alex Milushev
27.12.2016
12:25:23

Виталий
27.12.2016
12:25:59

Evgeny
27.12.2016
12:26:21
Организовать совпадение id и gid между машинами сборки, стейджингом и продом так, чтобы это было не root:root

Alex Milushev
27.12.2016
12:26:26
так
не должен быть овнером пользователь php-fpm
ему нужны только права на чтение
ну и запись во всякий кеш
но овнером быть не должен

Виталий
27.12.2016
12:27:17
ок, пусть так. А кто должен и где это рулить?
у меня вообще пробела от другого пошла. Я композером долежн пакеты установить, но владелец файлов рут, а от рута композер запускать опасно...
соответственно владельцем файлов должен быть любой друго юзер но не рут
а скажите мне еще, что "значит распухать контейнер будет" ?

Evgeny
27.12.2016
12:29:06
смена файлов - новый слой

Виталий
27.12.2016
12:29:12
понял

Evgeny
27.12.2016
12:29:17
смена прав - в слоях будет две копии

Alex Milushev
27.12.2016
12:29:23
даже аттибутов
да

Google

Alex Milushev
27.12.2016
12:29:49
там старый срач по поводу ADD и COPY но проблему не порешали до сих пор

Виталий
27.12.2016
12:30:57
у меня вообще задача - создать ряд контейнеров для продакшена, чтобы в них уже все настроено было, сделал их pull на продакшене и запустил и агонь!
может я не правильно это решаю?
может нет ничего страшного собирать конетйнеры на продакшене?

Evgeny
27.12.2016
12:31:22
Задача правильная. Но собирать надо до прода

Alex Milushev
27.12.2016
12:31:26
собирай при сборке
прогоняй на них тесты

Виталий
27.12.2016
12:31:35
вот
до прода

Admin
ERROR: S client not available

Виталий
27.12.2016
12:31:40
то есть на дев машине

Alex Milushev
27.12.2016
12:31:42
с них и разворачивай на прод
в CI

Виталий
27.12.2016
12:32:09
ну, до CI мне еще далеко, хотя бы руками прочувствовать как это...

Evgeny
27.12.2016
12:32:31

Виталий
27.12.2016
12:32:33
ну суть в том, что на дев машине или CI собирается контейнер, кладется в репо и с репы уже на проде разворчивется. так?

Evgeny
27.12.2016
12:32:37
дев машина - это дев машина

Alex Milushev
27.12.2016
12:32:57
+

Evgeny
27.12.2016
12:32:59
на проде делаешь docker service update или docker pull && docker run

Google

Виталий
27.12.2016
12:33:09
ок, значит подход правильный

Evgeny
27.12.2016
12:33:22
Это не очень хорошо

Виталий
27.12.2016
12:33:50
потому что CI пока что нет и я до его изучения пока не дошел :( гитлаб себе разверну и буду колупать
и тестов нет на проекте пока что... и когда будут хз :)
и мне вообще много чего учить :) пока ручками на любой машине кроме прода собирать буду
вот осталось с правами придумать че делать и я буду спать спокойно :)

Evgeny
27.12.2016
12:35:19
чтот мне подказывает что нет
вот ты где и как хранишь файло?

Виталий
27.12.2016
12:35:44
какие?

Evgeny
27.12.2016
12:35:51
ну у тебя наверняка пхп файлы создает

Виталий
27.12.2016
12:36:25
ну, допустим... приложение то работает, логи есть, юзеры чет загружают. Ты про это?

Evgeny
27.12.2016
12:36:49
Я про юзер контент, да. Логи у тебя встанут проблемой чуть позже

Виталий
27.12.2016
12:37:12
ну все важное будет смаунчено на хост машину

Evgeny
27.12.2016
12:37:27
Все работает на одной машине?

Виталий
27.12.2016
12:37:35
в контейнерах ничего важного не будет
пока что на одной, а что?

Evgeny
27.12.2016
12:38:04
Не, тогда все гораздо проше

Виталий
27.12.2016
12:40:51

Evgeny
27.12.2016
12:41:28
А, не, просто там нафиг не надо тогда все что я тут распинался
Всё куда проще и без мучений