@docker_ru

Страница 807 из 1375
Alexander
01.10.2018
11:41:53
всем привет! а насколько это плохая практика — делать специализированный ssh ключ на чтение из приватных репозиториев, чтобы при билде образа докер мог стягивать приватные зависимости? (ключ в итогое изображение не попадает)

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

Google
Alexander
01.10.2018
11:52:33
Как насчет скачать зависимость средствами CI, а в образ копировать с помощью простого COPY?
раньше так и было, но когда решил, что собираться тоже должно в идентичном окружении и стал использовать multi stage builds, то появилась такая проблема.

Alexander
01.10.2018
12:28:26
В целом не очень хорошо - твой образ становится зависимым от приватного репозитория, но если только для личного пользования, то не вижу ничего в этом страшного
в каком смысле зависимым? при сборке все зависимости стягиваются и образ от них уже не зависит. к тому же, он так или иначе все-равно из приватного репозитория собирается.

Alexander
01.10.2018
12:29:17
Vladimir
01.10.2018
12:29:49
Я прокидывал ключи, что лежат на сервере, где идёт сборка, более логичный подход, как по мне

Alexander
01.10.2018
12:30:56
дело в том, что зависимости стягиваются менеджером пакетов, который стягивает пакеты под конкретную платформу. поэтому хочется запускать менеджер пакетов из окружения в котором сервис и будет выполняться. + если lock файл с пакетами не менялся, то менеджеру пакетов даже не надо запускаться, т.к. слой закеширован при прошлом билде. короче, у такого подхода есть плюсы.

Andew
01.10.2018
12:31:24
Вообще подход может быть интересный. Если сделать "билд" образ со всеми ключами, скриптами и зависимостями И использовать его как первый степ в мультистейдже то может и не плохая затея. Но если это использовтать в в CI то получится билд образ внутри билд ноды.

Alexander
01.10.2018
12:32:54
ну, типа того, ага... зато один и тот же образ можно будет везде легко собрать, как локально, так и на билд ноде, не настраивая окружения для билда. ну ладно короче, поэкспериментирую. спасибо)

Google
Yaroslav
01.10.2018
13:40:50
Привет! Подскажите плс, работает ли docker на подсистеме WSL ? Для тестового стенда, для экономии на виртуалках

Ванько
01.10.2018
13:41:16
Шта

Yaroslav
01.10.2018
13:42:33
Konstantin
01.10.2018
13:56:59
Привет! Подскажите плс, работает ли docker на подсистеме WSL ? Для тестового стенда, для экономии на виртуалках
Для экономии можно lcow взять, переключить на виндовс контейнеры. Но я там ничего не скажу, особо не тестил

Aleksandr
01.10.2018
13:59:19
Джокер мы согласовали Ядвиге. Дане пока рано, смысла нет. Тебе Девоопс согласовали. Олег очень попросил о следующем, цитирую:

Пусть сходит и обязательно потом сделает доклад по мониторингу - Мониторинг и аудит приложений (Prometeus, OkMeter, DataDog, BPF, Dynatrace, XRebel, Glimpse, Zipkin, OpenTrace и другие); И пообщается с Андреем Ермаковым из Tinkoff как у них выстроен этот процесс.

Alexander
01.10.2018
20:13:41
доброй ночи

подскажите как прокинуть .env файл внутрь контейнера. Не использовать его как переменные окружения, а именно прокинуть, чтобы внутри контейнера был /var/www/.env . У меня ларавел упорото хочет видеть именно файл и все ломается без него

Alexander
01.10.2018
20:16:27
а нет какого-то варианта исключения, чтобы не извращаться? ну т.е. копи выглядит логично, но периодически надо править этот файл и не хотелось бы ради этого 10 минут ждать пересборки тома

volume - вариант без пересборки, но .... возможно я не понял как. в лоб не вышло

php: build: .docker/php-fpm volumes: - ./src:/var/www/ - ./src/.env:/var/www/.env

такой volume ?

Alexander
01.10.2018
20:23:42
так не хочет

Konstantin
01.10.2018
20:25:21
Так потому что папка вся уже маунтится, отдельно файл не надо

С чего решил что не хочет, нет в контейнере его?

Alexander
01.10.2018
20:28:34
угумс

в контейнере его нет

Google
Alexander
01.10.2018
20:28:48
root@58e5d47d032b:/var/www# ls -l total 644 drwxr-xr-x 7 root root 224 Sep 4 13:12 app -rwxr-xr-x 1 root root 1686 Sep 4 13:12 artisan drwxr-xr-x 4 root root 128 Sep 4 13:12 bootstrap -rw-r--r-- 1 root root 1527 Sep 4 13:12 composer.json -rw-r--r-- 1 root root 146775 Oct 1 19:37 composer.lock drwxr-xr-x 15 root root 480 Sep 4 13:12 config drwxr-xr-x 6 root root 192 Sep 4 13:12 database drwxr-xr-x 801 root root 25632 Oct 1 19:39 node_modules -rw-r--r-- 1 root root 482111 Oct 1 19:39 package-lock.json -rw-r--r-- 1 root root 1022 Sep 4 13:12 package.json -rw-r--r-- 1 root root 1134 Sep 4 13:12 phpunit.xml drwxr-xr-x 8 root root 256 Oct 1 19:59 public -rw-r--r-- 1 root root 3924 Sep 4 13:12 readme.md drwxr-xr-x 6 root root 192 Sep 4 13:12 resources drwxr-xr-x 6 root root 192 Sep 4 13:12 routes -rw-r--r-- 1 root root 563 Sep 4 13:12 server.php drwxr-xr-x 5 root root 160 Sep 4 13:12 storage drwxr-xr-x 6 root root 192 Sep 4 13:12 tests drwxr-xr-x 39 root root 1248 Oct 1 19:37 vendor -rw-r--r-- 1 root root 537 Sep 4 13:12 webpack.mix.js

такс

сорян

вопрос снимается. надо было просто через ls -al смотреть

Konstantin
01.10.2018
20:41:56
Ну да ?

Alexander
01.10.2018
20:51:43
век живи, век учись, дураком помрешь ?

Timur
02.10.2018
06:11:06
всем доброе утро. Господа, тупой вопрос: как открыть новый порт на уже существующем контейнере? Или это противоречит философии докера, когда ты хранишь persistent state отдельно, а контейнеры с конфигурацией у тебя уничтожаются-создаются пачками автоматом?

стоп-старт не вопрос (хотя ещё лучше было бы, конечно, на лету это делать)

Andrey
02.10.2018
06:17:09
стоп-старт не вопрос (хотя ещё лучше было бы, конечно, на лету это делать)
если с самого контейнера порт уже открыт приложением, то прокинуть его на свою тачку не особо большая проблема (iptables правила прописать). Но проще и правильнее просто перезапустить)

Timur
02.10.2018
06:21:00
пусть даже у остановленного контейнера

нашёл вот, что можно залезть в config.v2.json

Timur
02.10.2018
06:23:00
это да, но у меня не мишн-критикал, просто стенд

т.е. я вполне могу его потушить

и править конфигурацию

забавнее всего то, что править именно эту конфигурацию из CLI нельзя :)

"ExposedPorts":{"4560/tcp":{},"5222/tcp":{},"5269/tcp":{},"5280/tcp":{},"5443/tcp":{}}

config.v2.json, угу

Google
Timur
02.10.2018
06:24:00
ejabberd, да :)

Andrey
02.10.2018
06:24:25
тогда можно просто бахнуть правило типо: iptables -t nat -A DOCKER -p tcp --dport 9300 -j DNAT --to-destination 172.17.0.3:9300

Timur
02.10.2018
06:24:45
"PortBindings":{"5222/tcp":[{"HostIp":"","HostPort":"5222"}],"5269/tcp":[{"HostIp":"","HostPort":"5269"}],"5280/tcp":[{"HostIp":"","HostPort":"5280"}]}

и вот ещё, только это hostconfig.json

Andrey
02.10.2018
06:25:37
это костыль, про костыли вопросов не было :)
ты правила iptables смотрел на хосте?))

ниче что докер создает такие же?)

Timur
02.10.2018
06:26:05
ниче что докер создает такие же?)
есть разница между тем, что создаёт ПО при старте и между тем, что делаешь ты

Konstantin
02.10.2018
06:26:05
Зачем это всё? Пересоздавай с нужными настройками

Timur
02.10.2018
06:26:19
Зачем это всё? Пересоздавай с нужными настройками
ну вот я в первом сообщении спросил, собственно

Timur
02.10.2018
06:27:05
какая? если 1 в 1 строки одинаковые
элементарно: рестарт хост-машины, миграция контейнера на другую ноду (с изменением внутреннего ip-адреса), и т.д. и т.п.

ты предлагаешь это iptables -I ... в /etc/rc.local пихать?

спасибо, не надо :)

уж проще json поправить

Andrey
02.10.2018
06:27:38
А json править не костыль??? ?

Timur
02.10.2018
06:27:50
костыль, но более высокого уровня костыль

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

а тут ты по факту её не меняешь

Andrey
02.10.2018
06:28:20
есть нормальная практика, пересоздать контейнер правильно, хочется приключений, тогда не чурайся костылей,они все одинаковые ?

Google
Timur
02.10.2018
06:28:41
я в первом же сообщении спросил про best practices, господа :)

Andrey
02.10.2018
06:28:49
потому что докер хотя бы будет знать о том, что конфигурация контейнера изменилась
а ты уверен что поменяешь везде и оно взлетит после рестарта? А при миграции/смене ip и прочей дребедени которую ты описал?

я в первом же сообщении спросил про best practices, господа :)
А вообще есть гугл который дает исчерпывающий ответ на первой же странице: https://stackoverflow.com/questions/19897743/exposing-a-port-on-a-live-docker-container

Timur
02.10.2018
06:29:32
у меня какая-то фигня нагуглилась, видимо запрос был не совсем корректный

я бы не стал задавать вопрос, ответ на который нашёл бы в гугле :)

Andrey
02.10.2018
06:30:02
"open port on running docker container". - как его еще можно задать?))

Просто вообще ситуевина выглядит как "захотелось секса поутру" ?

Timur
02.10.2018
06:30:45
Просто вообще ситуевина выглядит как "захотелось секса поутру" ?
значит я ещё не такой старый, спасибо за комплимент :)

"open port on running docker container". - как его еще можно задать?))
я гуглил по "change port mappings on running container", угу

а ты уверен что поменяешь везде и оно взлетит после рестарта? А при миграции/смене ip и прочей дребедени которую ты описал?
надо погрепать и поискать. Мне этим докер и не понравился в своё время - документация вместо описания кишок рассказывает hello-world'ы разной степени замороченности. Откладывал знакомство с ним до последнего, а сейчас это отраслевой стандарт и хочешь или нет - приходится знать и работать

Konstantin
02.10.2018
06:36:13
Нет бестпрактис, есть один единственный вариант - пересоздать

Timur
02.10.2018
06:36:17
как-то так

Timur
02.10.2018
06:37:34
пасяба

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