При реализации аутентификации мы познакомились с использованием секретов Docker для передачи контейнерам файлов ключей для JWT.
По этим мотивам сегодня мы повысим безопасность контейнеров. Сделаем передачу паролей через секреты вместо переменных окружения. И создадим отдельного пользователя для PHP-CLI, чтобы не запускать консольные команды от root. Это нам станет полезно когда мы добавим очереди.
А сначала заодно обновим виртуальные машины до Debian 10 и Docker 20, чтобы работать со свежими инструментами.
- 00:00:15 - Постановка задачи
- 00:02:11 - Версия Docker
- 00:03:03 - Обновление виртуальной машины
- 00:04:08 - Ограничения версией операционной системы
- 00:06:32 - Переход на Debian 10
- 00:07:32 - Имя версии в Ansible
- 00:09:31 - Версия Compose-файлов
- 00:10:30 - Имена файлов секретов
- 00:11:26 - Пример работы с готовыми образами
- 00:13:28 - Чтение FILE-переменных в приложении
- 00:15:37 - Тестовое окружение
- 00:15:58 - Плюсы при деплое без scp
- 00:18:12 - Где отображаются пароли
- 00:19:40 - Внедрение файлов в Jenkins
- 00:22:16 - Создание пользователя в Dockerfile
- 00:25:02 - Обзор результата
Скрытый контент (код, слайды, ...) для подписчиков.
Открыть →Чтобы не пропускать новые эпизоды подпишитесь на наш канал @deworkerpro в Telegram
Спасибо!
Спасибо.
Спасибо
Дима, спасибо огромное за обновление курса и плана скринкастов по разработке аукциона!
Застрял в настройках SSL для локального тестирования (подключение стороннего API, OAuth2/https). Как правильно получить/установить сертификаты, использовать ssl-cert-snakeoil, или?
Спасибо!
Сторонний сервис требует указывать адрес
localhost
с HTTPS? Если очень нужно подключаться напрямую к сторннему сервису, то да, можно подставить самоподписанныеsnakeoil
сертификаты.Но вместо этого для локальной разработки удобнее поднять локальный эмулятор стороннего сервиса через Wiremock. Мы это как раз будем делать для входа через социальные сети.
Дима, благодарю за разъяснение, стало более понятно когда нужен snakeoil. В моем случае сторонний сервис пропустил без https, но создание локального эмулятора стороннего сервиса через Wiremock будет очень интересно.
В уроке (на 15 секунде) говорится, что в предыдущих эпизодах был переход на использование передачи секретов через файлы. Но я что-то не могу найти, где об этом говорилось ранее, ткните пальцем пожалуйста)
В 56 эпизоде мы через секреты передавали ключи шифрования.
Благодарю!
Добрый вечер, Дмитрий.
Возникла такая проблема.
Для локальной разработки требуется доступ к host.docker.internal в php-cli
Копирую docker-entrypoint.sh, как Вы объясняли, при этом создаю пользователя app в php-cli, но при запуске сервиса получаю ошибку
Если я не переключаюсь на пользователя app, то всё работает нормально, но от пользователя root
Как можно обойти эту проблему?
Добрый вечер.
Вроде как решилась проблема.
Добавил к необходимым сервисам external_hosts.
Это избавило от необходимости копировать исправленный docker-php-entrypoint.
И ещё такой вопрос. Вы переключаете пользователя с root на app только в php-cli, а почему это не делаете в php-fpm?
Или войти через: