Vitalii
расскажи как.
Evgeny
Если учишся - сначала попробуй
Evgeny
Может сам все решишь
Lex
Это RUN на нее влияет USER
Vitalii
Это RUN на нее влияет USER
это отличное замечание. Спасибо!
А юзер который указан в USER докерфайла будет потом в системе внутри контейнера?
Lex
USER так же влияет на CMD и ENTRYPOINT
Lex
Пользователь который указан в USER должен присутствовать в системе
Vitalii
вот круто рассказывают как правильно укаповывать код в контейнеры
Vitalii
http://blog.cloud66.com/how-to-get-code-into-a-docker-container/
Sergei
> According to Docker's best practices guide, COPY is recommended for most cases.
Павел
Коллеги, с наступающими!
Павел
Тупой вопрос, с которым не первый раз сталкиваюсь.
Sergei
@voskobovich как вариант можно в образ складывать /docker-entrypoint.sh и в нем chown -r www-data:www-data /app
размер образа не изменится, profit!
Павел
Что делать с теми средами, которые ставят зависимости в тот же каталог, где исходники? Типа ./node_modules? Невозможно же разрабатывать в режиме -v pwd:/app!
Павел
Приходится городить отдельный вызов пакетного менеджера, который бы мне на хост закачал эти несчастные зависимости, чтобы при монтаже каталога внутрь контейнера их там runtime нашел. Для IDE, конечно, это прикольно (иметь исходники библиотек под рукой), но уж больно некрасиво.
Evgeny
Учите матчасть, блин. Нодмодули могут быть выше
Vitalii
и вообще, скажите, внутри образа хранить исходники кода под рутом - чем плохо? может я с ветряной мельницей боролся?
Vitalii
веб сервер от www-data, права на чтение файлов у него есть, на запись права выдам куда надо... минусов не вижу.
Vitalii
в плане безопасности... тоже вопросов нет, хм... я что-то не замечаю?
Sergei
Sergei
Vitalii
то есть это скрипт, который стартует каждый раз при запуске контейнера. верно? если да, то круто
Vitalii
ок, но ведь если в контейнере чет после сборки изменить то его размер не измениться пока изменения не закомиттить. Так?
Sergei
хз, я не комичу контейнеры и не задавался вопросом)
Sergei
но есть подозрения что эти изменения на ФС не отражаются
Vitalii
ну каждый коммит - новый слой :) так что 99% что да, ну тестом можно проверить. А вообще с энтрипоинтом крутая идея. А скажи плиз, когда именно он запускается? в какой момент
Evgeny
Это плохая идея, в целом. Время отработки чоуна какие?
Sergei
https://docs.docker.com/engine/reference/builder/#/understand-how-cmd-and-entrypoint-interact
Sergei
а еще проверил, контейнер не растет в размерах, только /var/lib/docker/aufs/diff/ на несколько байт увеличился
Sergei
он же diff)
Vitalii
понял, попробую
Lex
Lex
из вариантов — пакуй из своего кода tarball выстявляя нужные привилегии и добавляй через ADD
Lex
что-бы не chown’ить и chmod’ить
Vitalii
Ну, пока так может работать
Viktor
А подскажите, плиз, как провернуть следущее: есть сервер1 с несколькими docker-контейнерами, сервер2 с mysql; надо дать возможность коду из контейнеров ходить в mysql. Как такое провернуть вообще можно?
Roman
возможно network_mode: "host" поможет
Viktor
а как это в compose-файле указать? (маны чрезмерно скудные на этот счет…)
Max
Viktor
нет - он один там на той машине
Roman
а прям так и указывать
Roman
https://docs.docker.com/compose/compose-file/#/networkmode
Viktor
Dmitry
Зачем в этом случае network в host режиме не понимаю. Разве что в докер ещё нет человеческой поддержки ipv6 по дефолту(пару месяцев не следил за ним) и база у вас на ipv6-only хосте. А так это не обязательно
Max
Vitalii
Ребята, не проектируйте инфраструктуру которая рассчитана на "свой веб сервер под каждый проект". Вы не сможете поднять два сервера на одном хосте :( именно на это напоролся сейчас я...
Vitalii
Vitalii
а так все красивенько было скомпоновано в docker-compose.
Vitalii
Фак, бд и мемкеши кажется можно завернуть в локальные сети между композером, и таким обзразом поднять под каждый проект свою БД. Верно?
Vitalii
А вот с веб сервером на 80м порту такое точно не прокатит
🏳️ Phil
Vitalii
nginx на 80м порту всегда один будет
Vitalii
нельзя сделать их несколько
🏳️ Phil
А зачем? Ну он один будет да
🏳️ Phil
В чем проблема?
CC-BY-SA-4.0/Docker-ce30.0
Один балансер, за ним апстримы бакендов.
Vitalii
в том что у меня есть проект, я для него создал docker-compose.yml в котором nginx, php-fpm, postgresql, memcached
Vitalii
и все это было рассчитано на то, что под каждый проект свой набор перечисленных выше компонентов
Vitalii
а сегодгня с треши шел и думал... а как же я запущу два проетка с атким подходом на одной хост машине...
Vitalii
и понял что я круто ошибся :(
🏳️ Phil
🏳️ Phil
Andrey
в админе локалхоста :)
Vitalii
не, это какие-то не нормальные решения... точнее в моем случае они не оптимальны.
Vitalii
все равно на 80м порту будет кто-то один сидеть, а все остальные апачи и нгинксы должны занимать любые другие порты
Vitalii
буду думать как сделать гибко
Pavel
И в итоге придумаешь ровно так как тебе тут предлагают :)
🏳️ Phil
🏳️ Phil
Vitalii
да нет паники, я просто хотел ребятам которые сейчас начали проектировку своей мего крутой инфтраструктуры показать где я ошибся... чтобы они не повторяли