Спасибо автору огромное Именно то что искал Есть много информации где моменты с передачей переменных, путей через volumes, переменных никак не обговаривается Материал нам как бы говорить это надо чтобы заработало и все От куда и зачем это значение останься за скобками В данном видео автор все объяснил пошагово Очень порадовал момент в ошибкой из за отсутствия переменной с паролем для базы данных На примере автор показал ошибку и то как ее можно попробовать исправить Думаю тому кто ищет урок с базовой конфигурацией и подробным объяснением стоит посмотреть
Спасибо большое! Именно после этого видео стало понятно, что и как работает. Получилось настроить нужные мне образы и окружение по аналогии с тем, как показано в видео.
очень хорошая подача. Один момент в дополнение. Если вдруг у кого будут проблемы с отображением на localhost. Нужно сделать docker network inspect имя-новой-сети. Той сети которую создал докер-композер. И потом найти айпишник для контейнера где работает nginx. Может кому полезно будет)
Было совершенно не понятно для чего в контейнер php пробрасывать волюм на файл из ./src/ Но потом дошло, что и контейнер nginx и еонтейнер php должны иметь доступ к файлам проекта, которые находятся на хосте в ./src/ и доступны в контейнерах по пути /var/www/html . Казалось, зачем пробрасывать в контейнер php ведь всегда на сервере файлы лежат в директории nginx (/var/www/)
доброго дня. нашли ли ответ? выше в комментариях писали про сетевой адрес для nginx, я его нашёл через команду docker network ls, из списка я выбрал NETWORK ID, который принадлежит сети с именем yyy_default, затем ввёл команду с этим именем docker network inspect [NETWORK ID]. Тут-то и лежит искомый ip в блоке с названием yyy-ngnix-1. Но пока не знаю, куда его писать)))
Да, согласен, по mysql всё никак не доходят руки сделать. Что касается отдельного контейнера под PHP my admin, на мой взгляд это будет Овер инжиниринг. То есть нечто излишне. Это просто приложение на PHP которое предоставляет графический интерфейс для доступа базе данных. Что касается Гита он аналогично добавляется в контейнер к приложению, то есть к PHP.
@@zhartaunik А как Вы считаете? Как правильнее? 1. На сервере все врeчную установить: ngix, php, MySQL, PHPMyAdmin? 2 Или скачать image в Docker, в котором это все уже установлено? Наверное при использовании Docker сервер будет медленнее работать?
@@MrVasiliy72 сетевые вещи не совсем мой профиль . Я php разработчик. Я за основу беру уже готовые образы и в них делаю те настройки которые мне нужны. То есть если я правильно понял вопрос, то я бы пошёл в пути наименьшего сопротивления. В любом случае вы можете посмотреть как собирается тот или иной образ и подчистую взять всё из него а не нужное убрать.
Есть проблема, Nginx запускается. Localhost работает. Но index.php не открывает, происходит долгая загрузка и в итоге ошибка. Че-то с php не то. Я и сам все это проделал. И взял файлы из гитхаба чтобы убедится. Но результат такой же.
Сам контейнер с mysql добавил, и да, действительно не показал как можно им пользоваться. Нужно поставить расширение mysqli в контейнер php и далее mysqli_connect('mysql', 'root', 'root'); Обратите внимание на первый аргумент - он соответствует имени контейнера заданного в docker-compose.yml. Может как-нибудь соберусь и запишу про это видео.
Команду пояснителей в студию: 1) версия докера в начале видео 20.10.10 2) версия докер-композера 1.29.2 А теперь Вопрос знатокам: 3) откуда мы тогда берём, и ставим в файл docker-compose.yml что версия у нас '3' ? (может это надо раскрыть как-то, чтобы магией не было?) а когда она была 2 или станет 4? где это человеку который только открыл для себя докер посмотреть? )
Скопировал ваш вопрос в чатбот и вот какой ответ он дал. Копирую слово в слово без форматирования: Версия '3' в файле docker-compose.yml обозначает формат синтаксиса для Docker Compose. Он не имеет прямого отношения к версиям Docker или Docker Compose, поэтому он может оставаться '3', несмотря на обновления других компонентов. Версия '3' в docker-compose.yml указывает на использование формата синтаксиса, изначально представленного в версии Docker Compose 3.x. Эта версия синтаксиса включает различные функции и параметры, которые можно использовать при настройке контейнеров и их взаимодействий. Чтобы узнать подробности о формате синтаксиса '3' и о том, как его использовать, вы можете обратиться к документации Docker Compose. Официальная документация Docker Compose доступна на сайте Docker: docs.docker.com/compose/ Там вы найдете подробные примеры, объяснения и руководства по использованию Docker Compose для различных задач. Вы также можете найти дополнительные ресурсы и руководства в Интернете, такие как блоги, сообщества и видеоуроки, которые могут помочь вам изучить Docker Compose более подробно.
Может кто-то сможет помочь - собирал laravel на контейнерах phpfpm+nginx+mysql по другому видео, но в целом шаги такие же - все работает, но любая страница грузится по 6+ секунд, всякие login, register и т.д. по консоли показывают 6 секунд загрузки каждый и все это время "ожидание ответа сервера", в чем может быть дело?
А какие вольюмы нужно прописывать в mysql разделе в docker-compose.yml? для nginx и php всё логично объяснили и показали. Подскажите пожалуйста по mysql
Файлы базы данных как вы понимаете хранятся на диске где-то. А если конкретно это /var/lib/mysql. Его и нужно использовать как вольюм. Таким образом можно после docker-compose down не потерять базу. Также этот вольюм можно использовать для того чтобы сделав дамп базы в контейнере забрать его, либо положить туда дамп и развернуть.
@@zhartaunik пытаюсь поднять mysql в контейнере, но контейнер сразу же падает. Мозг сломал, не могу понять почему. Вот такие сообщения в логах: 2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started. 2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' 2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started. 2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Initializing database files 2022-08-06T15:55:36.907081Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 43 2022-08-06T15:55:36.916396Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2022-08-06T15:55:38.261969Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted) 2022-08-06T15:55:39.484060Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem 2022-08-06T15:55:39.484090Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it. 2022-08-06T15:55:39.484436Z 0 [ERROR] [MY-010119] [Server] Aborting 2022-08-06T15:55:41.181093Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.27) MySQL Community Server - GPL. Вот такое в докер компоуз: mysql: container_name: db_casts image: mysql:8.0.27 ports: - '3306:3306' volumes: - ./database:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: symfony_docker MYSQL_USER: symfony MYSQL_PASSWORD: symfony Может сталкивались и подскажете, пожалуйста, в чем может быть загвоздка? Вольюм кстати работает, и файлы в папке database генерируются.
@@dimasi6675 Пардон, не заметил вовремя ваш вопрос, вы свою проблему скорее всего уже решили. Если что вот есть видео по настройке mysql ua-cam.com/video/IfakKN4Ub-8/v-deo.html
Приветствую. Можно ли использовать докер просто как локальную среду разработки вместо OpenServer? Не будет ли проблем с переездом проекта на 100 рублевый хостинг?
@@mexvision-3556 Попробую дать развернутый ответ. Сайт разработанный с использованием стандартного набора приложений (например php, nginx, mysql определенной версий) будет без проблем работать где угодно с тем же самым набором приложений. Другими словами совершенно нет разницы где запускается php версии 8.1. Установлен через обычную консоль или развернут в докер контейнере. Главное во избежании разного поведения локально и на хостинге иметь те же самые версии. Это минимизирует количество потенциальных проблем. Вы не спрашивали но предполагая потенциальный вопрос, где же можно запускать докер. Как правило если вы покупаете шаред хостинг (т.е. хостинг на котором у вас уже всё предустановлено) - вариант как правило более дешевый, простой и рассчитанный на неподготовленного разработчика, которому нужно просто быстро запуститься не заморачиваясь с настройкой. Вариант удобный но ровно до того места, если вам например нужно, к примеру, изменить настройку php (например допустимый размер загружаемого файла), а хостинг вам этого может не давать. Пример абстрактный чтобы объяснить суть. Докера в этом случае естественно не будет. С другой стороны вы можете сделать выбор в пользу VPS сервера (я пользовался что-то около 5 долларов в месяц). Где у вас будет полноценный доступ к консоли и вы сможете там настроить и установить всё что хотите, в том числе и докер. Однако будьте внимательны при его настройке. Там очень важно сделать минимальную базовую настройку позакрывав порты кроме нужных http/s (не сложная, всего пару команд). В интернете есть информация.
Здравствуйте. У меня не видит образ докере. Даже когда пишу: image: php..... шторм не подсказывает. В итоге при запуске ошибка 127. Подскажите, что это может быть?
Сложно сказать с первого раза поскольку не вижу целиком картины. Я попробовал бы следующее: просто один-в-один скопировал бы как на видео. Если умеете пользоваться гитом, то под этим видео прикреплена ссылка на репозиторий. Также для проверки работоспособности можно воспользоваться командой docker run
Добрый день, не приходилось. Однако что я успел нагуглить за пару минут, так это то что скорее всего вам подойдёт такой же конфиг nginx. Хотя возможно я смотрел не самую последнюю версию и что-то поменялось. Что вообще редактируется как правило в конфигах nginx, так это кастомные правила для папок, типов файлов, настройки https, редиректы. Грубо говоря в большинстве случаев для разработки это всё не нужно, чего не скажешь про деплой на лайв, поскольку можно понизить безопасность вашего приложения. И вторая часть того что нужно настроить, это библиотеки php. Опять же из того что я прочитал это то что нужно установить 5-6 или сколько-то там библиотек. Вот если этого не сделать то тогда ваше приложение Не будет корректно работать. Как это делать вариантов несколько. Самое простое - это найти готовый docker file под вашу платформу cms. Но в любом случае всё будет сводиться к тому, чтобы те приложения PHP которые на официальном сайте указаны как необходимые для работы, вам нужно было бы их установить. Как устанавливается одно из таких приложений mysqli вы можете посмотреть во втором моём видео на данную тему. Все остальные библиотеки PHP устанавливаются практически так же. Либо если запросить в google docker ubuntu install и имя вашей библиотеки.
Недавно записал видео по настройке конфигурации под CMS joomla и wordpress. Общий концепт скорее всего будет похож. Плюс планирую записать видео, когда конфигурация nginx будет не стандартная. ua-cam.com/video/tcs31bjrqpI/v-deo.html
Я пользуюсь тем что предоставляет PHPStorm. Бывает прямо в консоли что-то запускаю, если много INSERTов или похожих операций, когда ГУИ будет напрягаться. Самим SQL Workbench пользовался, но было очень давно и вроде мне не нравилась в нем производительность.
В теории вы конечно можете и под винду настраивать, но если занимаетесь серьезно этим, то субьективно вам рано или поздно придется перейти на Unix, чтобы хотя бы понимать как работает операционка на сервере, чтобы ее настроить.
Первые две команды отработали нормально, третья docker run hello-world ошибка "permission denied while trying to connect to the Docker daemon socket at unix". Дальше смотреть не имело смысла
Видео специально начато с этих проверок, чтобы после не было неожиданных сюрпризов. С таким подходом пробовать разрабатывать с докером не имеет смысла. Дальше uninstall только. В офф статье ( docs.docker.com/engine/install/ubuntu/ ) как установить докер есть секция: Next steps Continue to Post-installation steps for Linux. А если конкретнее, там рекомендуется следующее: To create the docker group and add your user: 1. Create the docker group. > sudo groupadd docker 2. Add your user to the docker group. > sudo usermod -aG docker $USER Если совсем лениво читать документацию, можно попробовать загуглить и по первой же ссылке та же рекомендация.
@@zhartaunik Я как раз и пришел посмотреть как установить и настроить, а вы меня документацию читать отправляете. Если бы она мне помогла, я бы не стал смотреть это видео. У меня реальная проблема с этим докером, ставил разные линуксы виндовсы и блин на каждом шаге какие-то проблемы, ошибки и херня всякая. Посмотришь видео на ютубе, все гладко ни одной ошибки как по маслу, на деле начинаешь установку и как описал выше на третьей же команде засада. Конечно я решил эту проблему через пять минут, но дальше то-же самое, одни ошибки и проблемы.
У меня была проблема - не устанавливался из гитхаба файл default.conf. Писало доступ к папке закрыт. Помогло перезаход под суперпользователем. Тут PhpMyadmin в сборке не хватает еще, а так норм. спасибо.
Есть контейнер - это виртуальное пространство которое живёт своей жизнью. А есть файловая система твоего компьютера, которую можно отзеркалить с файлами контейнер. Своего рода портал, если можно привести такое сравнение. Так вот эта папка /var/www/html своего живёт по тем же законам что и папка которую ты указал. Ты создаёшь что-то в контейнере, например /var/www/html/blabla.php и такой же файл появляется у тебя в папке на компе. С удалением аналогично. Как из контейнера, так и если через файловый менеджер на компе
А для чего? Допустим у вас есть некий код, который вы написали в контейнере и НЕ пробросили наружу. Как только вы положите контейнер все что вы там создали пропадёт.
почему у меня не видит index.php? структура App/src/public/index.php, когда вводишь exec php bash видно только пустую папку public/ , в yml файле волюмы прописал так: - ./App:/var/www/html
Когда я сталкиваюсь с подобного рода проблемами, я начинаю пробовать много разных вариантов. Поскольку я не вижу всего вашего проекта, то предполагать можно что угодно. Вы можете прислать сюда ссылку на свой репозиторий. 1. Указать volume для обоих контейнеров: nginx и php. Возможно вы забыли кавычки volumes: - './App:/var/www/html' 2. Войти в контейнер docker-compose exec php bash 3. Убедиться что мы находимся в папке /var/www/html. Это можно сделать с помощью команды pwd 4. Попробовать создать файл внутри контейнера и посмотреть где он прилетел наружу.
спасибо огромное, целый день потратил перед тем как найти ваше видео. upd: подскажите как подключить стили к index.php, нужно что-то в docker-compose настраивать, чтобы файлы видел?
Единственный человек который смог объяснить поэтапно эти линии кода 👏
Это просто БОМБА. Столько видосов пересмотрел по docker и длинных, и огромно длинных. Них... не понятно. А тут все кратко и ясно). Спасибо
Благодаря этому видео, я немного понял как эту кухню собирать. Спасибо!
Гениально! Без воды объяснили как все настроить. Пересмотрел тонну видео и только в этом все понятно. Спасибо!
Спасибо автору огромное
Именно то что искал
Есть много информации где моменты с передачей переменных, путей через volumes, переменных никак не обговаривается
Материал нам как бы говорить это надо чтобы заработало и все
От куда и зачем это значение останься за скобками
В данном видео автор все объяснил пошагово
Очень порадовал момент в ошибкой из за отсутствия переменной с паролем для базы данных
На примере автор показал ошибку и то как ее можно попробовать исправить
Думаю тому кто ищет урок с базовой конфигурацией и подробным объяснением стоит посмотреть
Очень круто, еще бы добавил, как прикрутить phpmyadmin к mysql
Спасибо, братан! Очень не хватает таких четких и правильных туториалов!
Просто топ, дружище, ты сделал очень доходчивое и крутое видео, спасибо. Респект тебе и ждем новых видео!
Спасибо! Очень помог! Последовательно, без воды, потрясающе! Буду разбираться дальше)
Спасибо огромное, выручил. Я до этого не понимал зачем docker-compose, но благодаря тебе понял. Все четко обьяснил.
Спасибо большое! Именно после этого видео стало понятно, что и как работает. Получилось настроить нужные мне образы и окружение по аналогии с тем, как показано в видео.
Видео просто огонь! И практическая польза есть и азы изложены доходчиво.
Дякую! Главное без всяких соплей! Строчка за строчкой!
Спасибо большое за обучающее видео! Я Docker сегодня начал только осваивать и изучать!
очень хорошая подача. Один момент в дополнение. Если вдруг у кого будут проблемы с отображением на localhost. Нужно сделать docker network inspect имя-новой-сети. Той сети которую создал докер-композер. И потом найти айпишник для контейнера где работает nginx. Может кому полезно будет)
А в адресной строке какой тогда надо будет писать ip?
@@algoritm3363аля
доброго дня. нашёл адрес сети ngnix, потому что файл php не нашёлся. а куду его вписывать?
Огромное спасибо!
Ваша инструкция мне очень помогла!
То что нужно! Спасибо!
Спасибо огромное!! Вот чтоб я делала без этого видео! Реально классно!!
Спасибо за видео. Коммент в поддержку!
Топ контент! Подписался, жду новых подобных видео!
Спасибо. Очень классно всё показал
Спасибо за понятное объяснение!
Спасибо, полезное видео!
Огонь!)
отличная подача материала, бро!
Было совершенно не понятно для чего в контейнер php пробрасывать волюм на файл из ./src/ Но потом дошло, что и контейнер nginx и еонтейнер php должны иметь доступ к файлам проекта, которые находятся на хосте в ./src/ и доступны в контейнерах по пути /var/www/html . Казалось, зачем пробрасывать в контейнер php ведь всегда на сервере файлы лежат в директории nginx (/var/www/)
Все шло хорошо, но на последнем этапе: 404 not found. Уже голову сломала, что я не так сделать могла...
доброго дня. нашли ли ответ? выше в комментариях писали про сетевой адрес для nginx, я его нашёл через команду docker network ls, из списка я выбрал NETWORK ID, который принадлежит сети с именем yyy_default, затем ввёл команду с этим именем docker network inspect [NETWORK ID]. Тут-то и лежит искомый ip в блоке с названием yyy-ngnix-1. Но пока не знаю, куда его писать)))
Спасибо, класний туториал 😊
Спасибо все четко и ясно !
Отличное видео
Отличное видео, спасибо)
Добрый день!
Хорошее видео, только надо добавить провод настройку сервера mysql.
Ещё бы добавить контейнер с PHP my admin И связь с гитхабом
Да, согласен, по mysql всё никак не доходят руки сделать.
Что касается отдельного контейнера под PHP my admin, на мой взгляд это будет Овер инжиниринг. То есть нечто излишне. Это просто приложение на PHP которое предоставляет графический интерфейс для доступа базе данных.
Что касается Гита он аналогично добавляется в контейнер к приложению, то есть к PHP.
@@zhartaunik А как Вы считаете?
Как правильнее?
1. На сервере все врeчную установить: ngix, php, MySQL, PHPMyAdmin?
2 Или скачать image в Docker, в котором это все уже установлено?
Наверное при использовании Docker сервер будет медленнее работать?
@@MrVasiliy72 сетевые вещи не совсем мой профиль . Я php разработчик. Я за основу беру уже готовые образы и в них делаю те настройки которые мне нужны. То есть если я правильно понял вопрос, то я бы пошёл в пути наименьшего сопротивления. В любом случае вы можете посмотреть как собирается тот или иной образ и подчистую взять всё из него а не нужное убрать.
Есть проблема, Nginx запускается. Localhost работает. Но index.php не открывает, происходит долгая загрузка и в итоге ошибка. Че-то с php не то. Я и сам все это проделал. И взял файлы из гитхаба чтобы убедится. Но результат такой же.
В начале этого видео можете найти ответ на ваш вопрос:
ua-cam.com/video/tcs31bjrqpI/v-deo.html
Классно! Только реализация mysql не показана в примере)
Сам контейнер с mysql добавил, и да, действительно не показал как можно им пользоваться.
Нужно поставить расширение mysqli в контейнер php и далее
mysqli_connect('mysql', 'root', 'root');
Обратите внимание на первый аргумент - он соответствует имени контейнера заданного в docker-compose.yml.
Может как-нибудь соберусь и запишу про это видео.
Записал видео для настройки mysql
ua-cam.com/video/IfakKN4Ub-8/v-deo.html
@@zhartaunik а как composer подкинуть что бы либы ставить? например orm
@@awenn2015 ua-cam.com/video/OJ-A9Xo5Xbk/v-deo.html
Вообще посмотрите остальные видео в плейлисте на канале
И от меня спасибо 👍🏻
C'est tres bien. Merci
Респект!
Команду пояснителей в студию:
1) версия докера в начале видео 20.10.10
2) версия докер-композера 1.29.2
А теперь Вопрос знатокам:
3) откуда мы тогда берём, и ставим в файл docker-compose.yml что версия у нас '3' ? (может это надо раскрыть как-то, чтобы магией не было?) а когда она была 2 или станет 4? где это человеку который только открыл для себя докер посмотреть? )
Скопировал ваш вопрос в чатбот и вот какой ответ он дал. Копирую слово в слово без форматирования:
Версия '3' в файле docker-compose.yml обозначает формат синтаксиса для Docker Compose. Он не имеет прямого отношения к версиям Docker или Docker Compose, поэтому он может оставаться '3', несмотря на обновления других компонентов.
Версия '3' в docker-compose.yml указывает на использование формата синтаксиса, изначально представленного в версии Docker Compose 3.x. Эта версия синтаксиса включает различные функции и параметры, которые можно использовать при настройке контейнеров и их взаимодействий.
Чтобы узнать подробности о формате синтаксиса '3' и о том, как его использовать, вы можете обратиться к документации Docker Compose. Официальная документация Docker Compose доступна на сайте Docker: docs.docker.com/compose/
Там вы найдете подробные примеры, объяснения и руководства по использованию Docker Compose для различных задач. Вы также можете найти дополнительные ресурсы и руководства в Интернете, такие как блоги, сообщества и видеоуроки, которые могут помочь вам изучить Docker Compose более подробно.
А как сделать чтобы шторм при наборе image показывал варианты образов?
Ctrl+пробел
Сейчас бы сервисы в одном контейнере называть разными контейнерами
Не уловил мысль
Может кто-то сможет помочь - собирал laravel на контейнерах phpfpm+nginx+mysql по другому видео, но в целом шаги такие же - все работает, но любая страница грузится по 6+ секунд, всякие login, register и т.д. по консоли показывают 6 секунд загрузки каждый и все это время "ожидание ответа сервера", в чем может быть дело?
Спасибо
А какие вольюмы нужно прописывать в mysql разделе в docker-compose.yml?
для nginx и php всё логично объяснили и показали.
Подскажите пожалуйста по mysql
Файлы базы данных как вы понимаете хранятся на диске где-то. А если конкретно это /var/lib/mysql. Его и нужно использовать как вольюм. Таким образом можно после docker-compose down не потерять базу. Также этот вольюм можно использовать для того чтобы сделав дамп базы в контейнере забрать его, либо положить туда дамп и развернуть.
@@zhartaunik пытаюсь поднять mysql в контейнере, но контейнер сразу же падает. Мозг сломал, не могу понять почему. Вот такие сообщения в логах:
2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.27-1debian10 started.
2022-08-06 15:55:36+00:00 [Note] [Entrypoint]: Initializing database files
2022-08-06T15:55:36.907081Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.27) initializing of server in progress as process 43
2022-08-06T15:55:36.916396Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-08-06T15:55:38.261969Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
mysqld: Cannot change permissions of the file 'ca.pem' (OS errno 1 - Operation not permitted)
2022-08-06T15:55:39.484060Z 0 [ERROR] [MY-010295] [Server] Could not set file permission for ca.pem
2022-08-06T15:55:39.484090Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2022-08-06T15:55:39.484436Z 0 [ERROR] [MY-010119] [Server] Aborting
2022-08-06T15:55:41.181093Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.27) MySQL Community Server - GPL.
Вот такое в докер компоуз:
mysql:
container_name: db_casts
image: mysql:8.0.27
ports:
- '3306:3306'
volumes:
- ./database:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: symfony_docker
MYSQL_USER: symfony
MYSQL_PASSWORD: symfony
Может сталкивались и подскажете, пожалуйста, в чем может быть загвоздка?
Вольюм кстати работает, и файлы в папке database генерируются.
@@dimasi6675
environment:
MYSQL_ROOT_PASSWORD=secret
MYSQL_DATABASE=symfony_docker
MYSQL_USER=symfony
MYSQL_PASSWORD=symfony
@@user-ye1dv6qe7b не, с "=" не работает
version: '3.8'
services:
mysql:
container_name: db
image: mysql:5.6
ports:
- '4308:3306'
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: symfony_docker
MYSQL_USER: symfony
MYSQL_PASSWORD: symfony
volumes:
- ${DB_DATA_PATH}:/var/lib/mysql:cached
- ${DB_DUMP_PATH}:/docker-entrypoint-initdb.d
networks:
default:
ipv4_address: ${CONTAINER_IP_DB}
только с версией mysql:5.6 работает
@@dimasi6675 Пардон, не заметил вовремя ваш вопрос, вы свою проблему скорее всего уже решили. Если что вот есть видео по настройке mysql
ua-cam.com/video/IfakKN4Ub-8/v-deo.html
Приветствую. Можно ли использовать докер просто как локальную среду разработки вместо OpenServer? Не будет ли проблем с переездом проекта на 100 рублевый хостинг?
Здравствуйте. Если вы говорите про локальную разработку, не совсем понятно о каком хостинге за 100р идёт речь
@@zhartaunik Я хочу использовать докер при разработке простенького сайта. Я смогу перенести его на самый обычный хостинг без докера?
@@mexvision-3556 Попробую дать развернутый ответ.
Сайт разработанный с использованием стандартного набора приложений (например php, nginx, mysql определенной версий) будет без проблем работать где угодно с тем же самым набором приложений. Другими словами совершенно нет разницы где запускается php версии 8.1. Установлен через обычную консоль или развернут в докер контейнере. Главное во избежании разного поведения локально и на хостинге иметь те же самые версии. Это минимизирует количество потенциальных проблем.
Вы не спрашивали но предполагая потенциальный вопрос, где же можно запускать докер.
Как правило если вы покупаете шаред хостинг (т.е. хостинг на котором у вас уже всё предустановлено) - вариант как правило более дешевый, простой и рассчитанный на неподготовленного разработчика, которому нужно просто быстро запуститься не заморачиваясь с настройкой. Вариант удобный но ровно до того места, если вам например нужно, к примеру, изменить настройку php (например допустимый размер загружаемого файла), а хостинг вам этого может не давать. Пример абстрактный чтобы объяснить суть. Докера в этом случае естественно не будет.
С другой стороны вы можете сделать выбор в пользу VPS сервера (я пользовался что-то около 5 долларов в месяц). Где у вас будет полноценный доступ к консоли и вы сможете там настроить и установить всё что хотите, в том числе и докер. Однако будьте внимательны при его настройке. Там очень важно сделать минимальную базовую настройку позакрывав порты кроме нужных http/s (не сложная, всего пару команд). В интернете есть информация.
Все равно открывается стартовая страница nginx на localhost
Google chrome: F12 / Network / Disable cache
Проверить настройки nginx fastcgi, по видео проверьте свои настройки
@@zhartaunik да, что то с кешем было. Пол часа посидел, попсиховал, обновил страницу и заработало
@@user-yb4fd7uy2e в хроме есть какой-то слой кэша который никак не почистить. В этом случае спасает только отключение его способом как я написал выше.
Здравствуйте. У меня не видит образ докере. Даже когда пишу: image: php..... шторм не подсказывает. В итоге при запуске ошибка 127. Подскажите, что это может быть?
Сложно сказать с первого раза поскольку не вижу целиком картины. Я попробовал бы следующее: просто один-в-один скопировал бы как на видео. Если умеете пользоваться гитом, то под этим видео прикреплена ссылка на репозиторий. Также для проверки работоспособности можно воспользоваться командой docker run
@@zhartaunik Спасибо. Буду пробовать.
здравствуйте! довольно интересное видео. Не приходилось ли вам настраивать nginx в связке с CMS DataLife Engine?
Добрый день, не приходилось. Однако что я успел нагуглить за пару минут, так это то что скорее всего вам подойдёт такой же конфиг nginx. Хотя возможно я смотрел не самую последнюю версию и что-то поменялось. Что вообще редактируется как правило в конфигах nginx, так это кастомные правила для папок, типов файлов, настройки https, редиректы. Грубо говоря в большинстве случаев для разработки это всё не нужно, чего не скажешь про деплой на лайв, поскольку можно понизить безопасность вашего приложения. И вторая часть того что нужно настроить, это библиотеки php. Опять же из того что я прочитал это то что нужно установить 5-6 или сколько-то там библиотек. Вот если этого не сделать то тогда ваше приложение Не будет корректно работать. Как это делать вариантов несколько. Самое простое - это найти готовый docker file под вашу платформу cms. Но в любом случае всё будет сводиться к тому, чтобы те приложения PHP которые на официальном сайте указаны как необходимые для работы, вам нужно было бы их установить. Как устанавливается одно из таких приложений mysqli вы можете посмотреть во втором моём видео на данную тему. Все остальные библиотеки PHP устанавливаются практически так же. Либо если запросить в google docker ubuntu install и имя вашей библиотеки.
Недавно записал видео по настройке конфигурации под CMS joomla и wordpress. Общий концепт скорее всего будет похож. Плюс планирую записать видео, когда конфигурация nginx будет не стандартная.
ua-cam.com/video/tcs31bjrqpI/v-deo.html
А скл воркбэнч вобще ставят в коммерческой разработке ?ну я гуи имею ввиду
Я пользуюсь тем что предоставляет PHPStorm. Бывает прямо в консоли что-то запускаю, если много INSERTов или похожих операций, когда ГУИ будет напрягаться.
Самим SQL Workbench пользовался, но было очень давно и вроде мне не нравилась в нем производительность.
А для винды всё тоже самое?
В теории вы конечно можете и под винду настраивать, но если занимаетесь серьезно этим, то субьективно вам рано или поздно придется перейти на Unix, чтобы хотя бы понимать как работает операционка на сервере, чтобы ее настроить.
Первые две команды отработали нормально, третья docker run hello-world ошибка "permission denied while trying to connect to the Docker daemon socket at unix". Дальше смотреть не имело смысла
Видео специально начато с этих проверок, чтобы после не было неожиданных сюрпризов.
С таким подходом пробовать разрабатывать с докером не имеет смысла. Дальше uninstall только.
В офф статье ( docs.docker.com/engine/install/ubuntu/ ) как установить докер есть секция:
Next steps
Continue to Post-installation steps for Linux.
А если конкретнее, там рекомендуется следующее:
To create the docker group and add your user:
1. Create the docker group.
> sudo groupadd docker
2. Add your user to the docker group.
> sudo usermod -aG docker $USER
Если совсем лениво читать документацию, можно попробовать загуглить и по первой же ссылке та же рекомендация.
@@zhartaunik Я как раз и пришел посмотреть как установить и настроить, а вы меня документацию читать отправляете. Если бы она мне помогла, я бы не стал смотреть это видео. У меня реальная проблема с этим докером, ставил разные линуксы виндовсы и блин на каждом шаге какие-то проблемы, ошибки и херня всякая. Посмотришь видео на ютубе, все гладко ни одной ошибки как по маслу, на деле начинаешь установку и как описал выше на третьей же команде засада. Конечно я решил эту проблему через пять минут, но дальше то-же самое, одни ошибки и проблемы.
У меня была проблема - не устанавливался из гитхаба файл default.conf. Писало доступ к папке закрыт. Помогло перезаход под суперпользователем. Тут PhpMyadmin в сборке не хватает еще, а так норм. спасибо.
привет ты указал var/www/html это путь от чего? я не совсем понял
Есть контейнер - это виртуальное пространство которое живёт своей жизнью. А есть файловая система твоего компьютера, которую можно отзеркалить с файлами контейнер. Своего рода портал, если можно привести такое сравнение. Так вот эта папка /var/www/html своего живёт по тем же законам что и папка которую ты указал. Ты создаёшь что-то в контейнере, например /var/www/html/blabla.php и такой же файл появляется у тебя в папке на компе. С удалением аналогично. Как из контейнера, так и если через файловый менеджер на компе
а как сделать без использования локальный вольюмов?
А для чего? Допустим у вас есть некий код, который вы написали в контейнере и НЕ пробросили наружу. Как только вы положите контейнер все что вы там создали пропадёт.
@@zhartaunik для прода.
@@UrakovAnton не до конца понимаю задачу которую вы хотите решить
Что такое версия 3? Версия докера?
docs.docker.com/compose/compose-file/compose-versioning/#version-3
Спасибо, просто бомба!!) Вот бы еще показал, как сделать что бы не localhost/index.php, а по ссылке serve.loc (открывался index.php)
почему у меня не видит index.php? структура App/src/public/index.php, когда вводишь exec php bash видно только пустую папку public/ , в yml файле волюмы прописал так:
- ./App:/var/www/html
Когда я сталкиваюсь с подобного рода проблемами, я начинаю пробовать много разных вариантов. Поскольку я не вижу всего вашего проекта, то предполагать можно что угодно. Вы можете прислать сюда ссылку на свой репозиторий.
1. Указать volume для обоих контейнеров: nginx и php. Возможно вы забыли кавычки
volumes:
- './App:/var/www/html'
2. Войти в контейнер docker-compose exec php bash
3. Убедиться что мы находимся в папке /var/www/html. Это можно сделать с помощью команды pwd
4. Попробовать создать файл внутри контейнера и посмотреть где он прилетел наружу.
спасибо огромное, целый день потратил перед тем как найти ваше видео. upd: подскажите как подключить стили к index.php, нужно что-то в docker-compose настраивать, чтобы файлы видел?
поднадоел насиловать клаву прямо в мик =="