Я прохожу курс по микросервисам, он предполагает использование докера и k8s. Для доступа к контейнерам из браузера или приложух типа Postman используется ingress service, для автоматизации управления деплойментами используется skaffold, а как бд используем mongo (тоже в контейнере на компе). Когда я начинал проходить курс, докер для домашней версии винды был доступен в форме Docker toolbox, в связке с виртуальной машиной от Oracle, а k8s в форме файлика minikube.exe, который исполнялся в командной строке. Где-то неделю назад, когда в моем курсе показывали как работать с Next.js для клиентской части приложения, после создания клиентского деплоймента и внесения дополнений в конфиги скаффолда и ingress сервиса, у меня отвалилась mongo. Никаких ошибок в коде нет, дело было очевидно в докере или k8s или в чем-то другом. Удаление клиентской части приложения и восстановление конфигов, да даже полная очистка всего что есть от докера на компе (docker system prune) не помогла - соединение с бд не устанавливалось. После долгих изысканий я увидел инфу на сайте докера, что мол всё, тулбокс больше не поддерживаем, устанавливайте Docker Desktop как на pro винде, только версию для home. Сказано - сделано. Поставил всё необходимое, запустил приложение - всё пашет и с базой соединяется. Но теперь всё работает через одно место. Объясню. У меня в приложении используется бэкенд фреймворк express.js, а в нем есть фича по автоматической обработке ошибок, то есть можно настроить так, что когда появляется ошибка, экспресс её перехватывает и действует в зависимости от того как мы настроим, а не тупо кидает её в консоль и требует исправить код. У меня настроено так, что есть несколько типов определенных ошибок, например 404 not found, неправильный логин или пароль и т.п, при которых экспресс после запроса на сервер отправляет инфу именно о них. То есть если я намеренно введу неправильный пароль, что выдаст ошибку, экспресс ответит с сервера именно "неверный пароль". Но если вдруг в приложении появляется какая-то неизвестная ошибка, которой нет в перечне настроенных, экспресс выдаст в ответе просто "что-то пошло не так". Так вот теперь при ручном тестировании запросов в Postman (или в браузере через клиентскую часть которую я заново сделал и бд больше не отваливалась) у меня частенько сервер отвечает вот этим "что-то пошло не так", а самое тупорылое, что лечится это просто открытием файла с логикой запроса который выдает ошибку и нажатием Ctrl+S (а если не поможет - перед сохранением куда-нибудь в код воткнуть пустой console.log()). И как скаффолд синхронизирует файл в контейнер можно нажать и сервер ответит как надо. А еще бывает что один раз ответит "что-то пошло не так", а нажимаю второй раз - ответит как надо. Что же касается автоматических тестов (jest используем) - всё работает без ошибок, из раза в раз все тесты проходит без танцев с Ctrl+S-ом или console.log()-ом. Объясните, что случилось с докером, может стоит перейти на мак или докупить pro винду чтобы полноценный докер поставить?
mureevms, да мне интереснее было бы узнать есть ли возможность сделать что-то с этим докером чтобы он нормально на домашней винде работал, понятное дело что есть варики разрабатывать в облаке или вообще линукс второй системой поставить, но так удобно было на винде...
Никита Белецкий, по винде не пожскажу, не мой профиль.
Не знаю как работает докер в винде, поэтому пальцем в небо, а быть может имеет смысл использовать WSL?
mureevms, а не подскажешь, это нормально что он создает имедж с каким-то своим тэгом, несмотря на то что этот же имедж уже есть на компе с тэгом latest? На маке так же работает?
Тег latest значит последний (пока очевидно, да). Когда в докерхабе или регистри имедж обновляется, то ему ставится такой же тег, т.е. latest. Но по факту это разные имеджи и выкачивая новый, делая pull, скачивается новый имедж с таким же тегом. Новому назначается тег latest, а предыдущий latest тегируется по ID