Комментарии 5
Версия:
version: '3.9'
: Используется версия 3.9 формата Docker Compose.
В доке пишут, что указывать не обязательно.
r = redis.Redis(host='193.3.298.206', port=6380, db=0, username='username', password='your_pass')
Раз у нас уже есть файл с переменными окружения (и мы его используем в docker-compose.yaml), логично и тут использовать этот файл (я бы не ставил на то, что люди не будут ограничиваться одним копированием).
В доке пишут, что указывать не обязательно.
Я Python разработчик. У меня в подкорку вшито, что "явное - лучше не явного")
Раз у нас уже есть файл с переменными окружения
Файл окружения лежит на VPS сервере, а тест был с локальной машины. Можно, было, конечно там использовать .env, но мне показалось что новичкам будет понятнее явное указание, с учетом того что я показывал подключение по ссылке.
Много замечаний, даже не очень хочется комментировать это..
version: '3.9'
- compose версий 3.x - зарезервировано для Docker Swarm. Вам достаточно будет 2.x, хоть оно и совместимо. Вообще говоря, версии 3.9 не существует, а в последних версиях compose эта строка вообще игнормруется.
Что за дичь в секции "command"? Почему не засунуть всё в конфиг и, например, примонтировать его? Или даже внутри Dockerfile это все можно сделать.
Делаем пароль, но светим его в коммандной строке - просто совет на миллион...
С такой командной строкой просто так корректно остановить процесс не получится. Поскольку у вас это строка - оно будет запущено через shell, то есть это будет выглядеть как `sh -c "sh -c "mkdir ...; redis-server ... ""`.. Не много ли процессов? По умолчанию при остановке контейнера SIGTERM будет отправлен процессу с pid=1, у вас это будет первый sh. Он остановится, а остальное - нет. И по таймауту докер вынужден будет жёстко прибить все процессы, что очень не хорошо и Redis может не успеть закрыть свои файлы корректно.
Пароли в переменных окружения - тоже совсем не секьюрно.
tty и stdin_open: Включены для интерактивного доступа.
Зачем, если вы запускаете как демон?
По версии в compose файле выше писал, ну и привычка никуда не девается.
Что за дичь в секции "command"? Почему не засунуть всё в конфиг и, например, примонтировать его? Или даже внутри Dockerfile это все можно сделать.
Мне показалось, что новичкам будет интересно глянуть как указывать команды в compose файле. Тем более так обычно, действительно, не делают. Ну а так да. В боевых проектах пишут все в config файле.
Зачем, если вы запускаете как демон?
Иногда удобно вернуться в терминал для отслеживания текущих логов в интерактивном режиме. Ну и там проще тогда в attach режим входить. Не знаю, тут, кажется, что замечание вообще не уместное.
„Мне показалось, что новичкам будет интересно глянуть как указывать команды в compose файле“
Если уж взялись писать 1001-он руководство, то пишите не как вам кажется, а как надо в production ready окружении его ставить. Все остальное гуглится за 5 минут и все они примерно такого же уровня :(
Вам же вопросы задавали: как пароли указывать, чтобы хоть какая-то видимость безопасности была, не простым ps -all все искалось.
Быстрый запуск Redis через Docker Compose