для тех, у кого не завёлся nginx после перехода на alpine: замените в докерфайле строку COPY custom.conf /etc/nginx/conf.d/ на COPY custom.conf /etc/nginx/http.d/default.conf
Автор! Спасибо я получил несостыковку как ты и говорил с nginx! Пока дошел до того момента где ты об этом рассказываешь, я долго не мог понять почему с твоими Dockerfile'ами у меня не работает. Оказывается версии nginx были под конкретный Dockerfile'ы, а со временем все поменялось! Всегда знал, что вот такие эрудиты от IT допускают такие детские ошибки!
Замечаю много ляпов в видео: 1. compose_php и compose_nginx сами по себе не создадутся с таким названием. нужно явно прописать (image: compose_php в docker-compose.yml) 2. В alpine linux нужно ложить конфиги в /etc/nginx/http.d/ а в debian /etc/nginx/conf.d/ 3. В docker если ложить в /opt ничего не работает 3. Если повторять 1 в 1 часто результыты разнятся. Это убивает качество обучение В целом мне нравится материал
Очень понравилось. Доходчиво! Кстати, при построении контейнера на образе Debian'а, для облегчения можно ещё добавить "apt-get clean" - кэши apt тоже остаются. Возможно ещё localepurge установить, но как его автоматом отконфигурить пока не думал.(если там вообще есть локали кроме "C") Ещё раз - спасибо!
или использовать github.com/GoogleContainerTools/distroless там тоже есть дебиан, размер оригинала 144мб против 19мб, но там есть моменты с отладкой(там нет sh)
Объясните, пожалуйста, почему нужно пушить в registry до тестов? Ведь при неудачных тестах там будут накапливаться образы, которые не предназначены для деплоя, а значит, - никому не нужные, так? Почему нельзя выполнить тесты и пушить образы только после успешного завершения тестов?
Чаще всего так и делают, но иногда надо прогонять тесты интеграции с другими частями системы а для этого надо новые артефакты задеплоить - значит и куда-то залить. Решение в таком случае простое: При билде добавлять только снэпшот тэги, а после удачного тестирования - добавить релиз тэги для образов,
а скажите, пожалуйста, в командах докера синтаксис какого языка используется? к примеру, docker rmi $(docker images -q) - что делает эта команда мне понятно. Но почему именно такой синтаксис и где про него прочитать? почему именно $ и тп. Спасибо!
Отвечу сам на свой вопрос. Это используется, если используем раннер в докере. Этим мы переопределяем entrypoint, который написан в докер-файле. Если мы не хотим выполнения команды в контейнере, то мы затираем его - [""]
Спасибо, было интересно посмотреть про ci. Эти вопросы и комментарии, который составил для себя по ходу просмотра - буду их разбирать самостоятельно. 56:46 Смущает, что вся www и в php, и в nginx образах. Это нормальная практика? 58:00 За счет чего 9000-ый порт стал доступен для nginx - за счет того, что compose сделал из двух контейнеров какую-то общую группу? 1:23:13 Один логин в регистри на весь ci работает? 1:26:40 Что является фейлом стейджа: код выхода из программы? 1:40:04 Что из себя должен представлять стейдж ревью не было сказано: то есть, как это должно быть на практике, а не в теории. 1:54:28 "Код должен быть внутри образа". Но www дату ранее подключали через volume, а не копировали. Для локального окружения, конечно, удобнее через volume. Для прода - копирать в образ.
В этих директориях могут быть данные, которые использовались для билда чего-либо. Скорее всего, они не нужны. Так что, их удаление, если там что-то есть, может уменьшить размер получаемого образа.
для тех, у кого не завёлся компоуз по инструкции из видео, подготовил набор файлов на яндекс-диске, сами подставьте домен и дальше /d/u8z4ynIyT-cjdA просто ютуб удаляет комментарий со ссылкой)
Добрый день. Прошу прощения и пояснения про многослойность и аспект изоляции при сборке. Вы упомянули, что в моменте с опцией RUN, что BP, это конкатенация команд, добавив, что второй RUN с очисткой кеша не принесёт результата, так как будет в другом слое. Я пытаюсь понять, как это можно отнести к контексту BP, если это в принципе диссонирует с контекстом BP, так как из Ваших слов следует, что результат до и после будет разный .
А почему базовый образ Debian? Я смотрю python images тоже на основе Debiana. Почему именно Debian? Это что, самый крутой Linux для разработки? В чём его преимущества перед другими? почему не CentOS или Ubunta?
Для курса вечерней школы - нет. У курсов Kubernetes с практикой есть сертификация, в ходе которой на стенде выполняется практическое задание. Выполнение примерно 5-6 часов. Можно отдельно сдать сертификацию.
Марсель, спасибо! отличная серия, полезная
для тех, у кого не завёлся nginx после перехода на alpine: замените в докерфайле строку
COPY custom.conf /etc/nginx/conf.d/
на
COPY custom.conf /etc/nginx/http.d/default.conf
Спасибо!!!!
@@nikolaifedorov685 не за что)
Спасибо большое
@@fastbery не думал, что кто-то это прочитает))))) не за что, рад, что помогло
Автор! Спасибо я получил несостыковку как ты и говорил с nginx! Пока дошел до того момента где ты об этом рассказываешь, я долго не мог понять почему с твоими Dockerfile'ами у меня не работает. Оказывается версии nginx были под конкретный Dockerfile'ы, а со временем все поменялось!
Всегда знал, что вот такие эрудиты от IT допускают такие детские ошибки!
Марсель, спасибо. Про docker-compose особенно понравилось. ну и best practice, конечно, очень полезно
Замечаю много ляпов в видео:
1. compose_php и compose_nginx сами по себе не создадутся с таким названием. нужно явно прописать (image: compose_php в docker-compose.yml)
2. В alpine linux нужно ложить конфиги в /etc/nginx/http.d/ а в debian /etc/nginx/conf.d/
3. В docker если ложить в /opt ничего не работает
3. Если повторять 1 в 1 часто результыты разнятся. Это убивает качество обучение
В целом мне нравится материал
Добавляйте, пожалуйста, Полезные ссылки в описание к видео, не удобно вручную перебивать =)
Так оно ещё и работает через раз!
Очень понравилось. Доходчиво!
Кстати, при построении контейнера на образе Debian'а, для облегчения можно ещё добавить "apt-get clean" - кэши apt тоже остаются. Возможно ещё localepurge установить, но как его автоматом отконфигурить пока не думал.(если там вообще есть локали кроме "C")
Ещё раз - спасибо!
или использовать github.com/GoogleContainerTools/distroless там тоже есть дебиан, размер оригинала 144мб против 19мб, но там есть моменты с отладкой(там нет sh)
Спасибо за видео
Субриэлю и команде огромное спасибо!
А зачем делать custom.conf, если при запуске контейнера вы его не указываете? По умолчанию docker не будет его читать.
Health check есть в 3 версии Аpi docker-compose
Видео супер!
Объясните, пожалуйста, почему нужно пушить в registry до тестов?
Ведь при неудачных тестах там будут накапливаться образы, которые не предназначены для деплоя, а значит, - никому не нужные, так?
Почему нельзя выполнить тесты и пушить образы только после успешного завершения тестов?
Чаще всего так и делают, но иногда надо прогонять тесты интеграции с другими частями системы а для этого надо новые артефакты задеплоить - значит и куда-то залить.
Решение в таком случае простое: При билде добавлять только снэпшот тэги, а после удачного тестирования - добавить релиз тэги для образов,
в районе часа:
зачем пхп папка www, разве nginx не отправляет файлы из своего рута в пхп по 9000 порту?
а скажите, пожалуйста, в командах докера синтаксис какого языка используется? к примеру, docker rmi $(docker images -q) - что делает эта команда мне понятно. Но почему именно такой синтаксис и где про него прочитать? почему именно $ и тп. Спасибо!
$() это выполнение команды в bash
огонь!)
Спасибо! Давно работаю с докером и композом но тут пару полезных вещей подчерпнул.
best!
Спасибо! Но вот вопрос? Как настроить раннер (/etc/gitlab-runner/config.toml)? На сервере должен быть свой докер и докер-композ или какой-то стороний?
Докер будет тот который ты сам поставишь на этот раннер...
Привет! В CI/CD на стадиях cleanup and deploy используем entrypoint: [""]. Как это работает?
Отвечу сам на свой вопрос. Это используется, если используем раннер в докере. Этим мы переопределяем entrypoint, который написан в докер-файле. Если мы не хотим выполнения команды в контейнере, то мы затираем его - [""]
Спасибо, было интересно посмотреть про ci.
Эти вопросы и комментарии, который составил для себя по ходу просмотра - буду их разбирать самостоятельно.
56:46
Смущает, что вся www и в php, и в nginx образах. Это нормальная практика?
58:00
За счет чего 9000-ый порт стал доступен для nginx - за счет того, что compose сделал из двух контейнеров какую-то общую группу?
1:23:13
Один логин в регистри на весь ci работает?
1:26:40
Что является фейлом стейджа: код выхода из программы?
1:40:04
Что из себя должен представлять стейдж ревью не было сказано: то есть, как это должно быть на практике, а не в теории.
1:54:28
"Код должен быть внутри образа". Но www дату ранее подключали через volume, а не копировали. Для локального окружения, конечно, удобнее через volume. Для прода - копирать в образ.
А с docker compose есть такие плюшки?
thnx a lot, you're the best
Thanks ) очень полезно_)
в одном из конфигов нашел такую запись
```
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
```
помогает ли такое тоже?
В этих директориях могут быть данные, которые использовались для билда чего-либо. Скорее всего, они не нужны. Так что, их удаление, если там что-то есть, может уменьшить размер получаемого образа.
image с apline не работает
тоже не понял, как оно запустилось без правок. Вот мои правки th-cam.com/video/Hz7fkXQABNo/w-d-xo.html&lc=UgzOzXEL5GJzN0M2sKZ4AaABAg
Эхо(echo) правильно, ударение на первую буку ^_^
Первые 5 минут можно было и обрезать) А так спасибо, полезно!
Спикер не знает, что инструкция EXPOSE не открывает порты? Гм...
Держу вкурсе, что EXPOSE не открывает порты
Спикер прогуливал уроки английского в школе :-)
я смотрю тут все на "perfect english" шпрехают ;-)
Что вы против киширования имеете?
Слушать произношения невозможно! 🖓🖓🖓
А кто-то ещё не закончил школу видимо;)
@@petyap7600 и кто же?
Вараэблс
Дзынь калька! xD
Обращаюсь к российским айтишникам. У вас забирают лучшие года жизни. th-cam.com/video/tzLSfWGl76A/w-d-xo.html
Подскажите, пожалуйста
При попытке запустить, как на 1:08:37 - получаю ошибку
Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/docker-entrypoint.sh": permission denied: unknown
chmod +x не помог
chmod в докерфайле делали или в основной системе? я в докерфайле через RUN chmod +x сделал, всё работает
34:47
Про alpine был в курсе, но чтобы так! В голос удивился!
Спасибо) Очень даже неплохо) Кое-что не знал)
Спасибо, очень здорово объяснил!
для тех, у кого не завёлся компоуз по инструкции из видео, подготовил набор файлов на яндекс-диске, сами подставьте домен и дальше /d/u8z4ynIyT-cjdA
просто ютуб удаляет комментарий со ссылкой)
Добрый день.
Прошу прощения и пояснения про многослойность и аспект изоляции при сборке.
Вы упомянули, что в моменте с опцией RUN, что BP, это конкатенация команд, добавив, что второй RUN с очисткой кеша не принесёт результата, так как будет в другом слое. Я пытаюсь понять, как это можно отнести к контексту BP, если это в принципе диссонирует с контекстом BP, так как из Ваших слов следует, что результат до и после будет разный .
th-cam.com/video/Hz7fkXQABNo/w-d-xo.html Начало контекста вопроса.
Всеобъемлюще. Отличный доклад. Большое спасибо!
А почему базовый образ Debian? Я смотрю python images тоже на основе Debiana. Почему именно Debian? Это что, самый крутой Linux для разработки? В чём его преимущества перед другими? почему не CentOS или Ubunta?
Debian это базовый классический линукс дистрибутив. Убунту это форк того же дебиана, центос - форк редхата со своими прибамбасами
Спасибо!
Уже за первые полчаса куча полезного - спасибо!
Эд
Скажите пожалуйста, есть ли после окончания курса ко куберу какие-то сертификаты?
Для курса вечерней школы - нет. У курсов Kubernetes с практикой есть сертификация, в ходе которой на стенде выполняется практическое задание. Выполнение примерно 5-6 часов.
Можно отдельно сдать сертификацию.
народ, на vps с 1 гб ОЗУ куб не уместен? или можно
2 Гига оперативки минимум на куб требуется
Чем дальше в лес, тем жирнее партизаны! Спасибо тебе, добрый человек. Теперь меня может быть из программистов не выгонят.
Судя по документации, healthcheck уже поддерживается в 3 версии docker-compose.
Привет! Healthcheck поддерживается, но не поддерживается "condition: service_healthy"
@@slurm_io Жесть - застрял на этом видео, т.к. все примеры с nginx то работают, то не работают!
Поддержу Community Слёрм :)
Спасибо Добрый человек!!! Следим! Красава!
Да это не человек добрый, просто заманушный бесплатный курс слерма. Но им реально спасибо, много полезного!
@@АндрейМетелкин-с2ъ Ахаха, обьясняет хорошо))
@@АндрейМетелкин-с2ъ Найдутся людишки, которым качественный материал покажется заманухой. Тут целый курс по этой теме. Без обычного "наживка и крючок"
@@petyap7600
привет! ты весь курс посмотрел? если да - как тебе? я пока только третий (этот) урок начинаю смотреть.
Спасибо большое, теперь имею предстовления с Docker
а как учили nginx? Для меня вот это все, связанное с nginx, вообще не понятно
@@misha8280 Да так оно ещё и работает через раз. Потому что докладчик свои же рекомендации нарушает - указывать точный таг образа!