Anonymous
заказчики показываютчто нужна
Отказывается от Езернета
Это тож старая технология
bazzilic
DemDev
Добрый день.
Запускаю свой сервис в докер контейнере и добавил в функциональность сервиса удаление одной папки за собой. Но контейнер падает с ошибкой: "Error: EACCES: permission denied, rmdir './data'"
Как дать права доступа на удаление папки или проблема не в этом?
Анатолий
ты её маунтил? эту папку ./data
Анатолий
грубо говоря если она с хоста или с другого контейнера - не удаляй её
DemDev
Анатолий
ты её определил в volume..
DemDev
просто сейчас мне понадобилось добавить в сервис одну функциональность, которая удаляет .data папку, а сервис в докере падает и не позволяет это сделать
Анатолий
не знаю. попробуй. volume вообще декларативная вещь.. реальный бинд или маунт во время docker run происходит
Анатолий
https://docs.docker.com/engine/reference/builder/
Nikolay
Всем привет. У меня вопрос про организации CI и CD. Допустим вы пишите вебприложение. Разделяете на stage и production инфраструктуру. Как вы храните настройки подключения к БД, конфигурации в зависимости от окружения (например, тот же robots.txt для прода и для тестового разные, файлы с подключением к БД также разные). Потому что такие данные просто хранить в VCS вроде как нельзя, но при сборке того же образа пробрасывать в сборку нужно
Artem
пиши приложение которое может читать параметры из переменных окружения
Artem
тогда будешь передавать все секурные данные при старте
Nikolay
Справедливо
Nikolay
А если есть тот же gitlab сохранять их в нем и прокидывать уже при сборке с помощью CI?
Artem
ну это не исключает первый вариант
Artem
если допустимо хранить в переменных гитлаба, то пожалуйста
Artem
просто тогда эти данные будут вшиты в имаджи
Nikolay
Получается что не обязательно, просто при сборке из гитлаба будут подставляется в перемиенные окружения сборки образа
Nikolay
Ну т.е. в целом примерно как-то так вот все и делают?
Artem
так они нужны только на момент сборки или для работы приложения?
Anonymous
Artem
Nikolay
Нужно например прокинуть знаяения для подключения БД, номера портов, на котором будет работать приложение, да и в принципе все
Anonymous
Nikolay
Он тоже подходит в качестве примера
Nikolay
в гите хранить все версии?
Nikolay
для теста и прода
Nikolay
Опять же нужен будет скрипт, которые при разворачивании копирует .prod.env в просто .env
Artem
так зачем копировать, если можно указывать конкретный env файл
Andrey
Nikolay
Ага
Nikolay
Просто еще хочется оградить просто разрабов от конфигов продакшен сервера
Nikolay
Или у кого какая практика на этот счет? В целом все кто работает на проекте имеет доступ к проду?
Sergey
никогда не юзай env файлы в проде
Sergey
(но если очень хочется и лень делать нормально то можно)
Sergey
да что там в проде - кроме как локально лучше вообще env файлы не юзать
Nikolay
Nikolay
вот хочу накрутить парочку переменных да к бд подключиться, в репе само собой все это хранить нельзя
Nikolay
Сейчас еще получается, что и env в репе не оставить
Sergey
тут два момента:
- env переменные прокидываем при деплое, то есть в моем случае например переменные окружения задаются дженкинсом при разворачивании контейнеров на серваке. Такая же примерно стратегия при работе с кубером.
- все пароли и токены по хорошему лучше хэндлить через docker secrets (или кубернетисовые)
Nikolay
Sergey
но тут тоже нюанс - убедись что у тебя эти "дефолтные" никогда не заюзаются при деплое
Anonymous
Воспользуйся доп конфигами
Sergey
а то потом можно ловить очень интересные проблемы
Sergey
(и да, я тут делаю допущение что верить никому нельзя и криворуких кто обновил .env но не обновил настройки в менеджере секретов каком больше чем остальных)
Sergey
я сейчас просто дефолтные значения прописываю в docker-compose файликах которые нужны только для локальной разработки
Sergey
но можно по разному делать
Nikolay
Ооок, таки кажется вектор приобретен
Nikolay
Спасибо)
Sergey
но справедливости ради - у меня есть репозитории где лежат .env и все как у всех просто потому что мне лень)
Artem
так это не фс контейнера
Oleh
Artem
из пути непонятно?
Artem
Запусти любой новый контейнер и попробуй привести листинг его корня командой аналогично выше
Michael
годно!!!
Artem
Sergey
ну так объясни что не так)
Sergey
я уверен что "файловую систему" по пути которую указал автор нельзя глянуть так как это дифы слоев
Sergey
и там все чуть сложнее
Sergey
но я хз, потому можешь мне рассказать)
Artem
именно
Artem
он там ничего не увидит если контейнер не собирался на этом хосте
Artem
да и при сборке он увидит только тот самый DIFF, но не то что было до него
Artem
так что я хз как товарищ выше ls-ом собрался лазить по фс контейнеров с хоста
Artem
Bogdan
без блять кучи гемора) оно просто законнектилось к IDE, просто начало работать сразу без каких-либо проблем)
Artem