Конфигурация Docker для разработки с Next.js 13.4, Postgresql и Strapi CMS
Если вы разрабатываете веб-приложение с использованием Next.js 13.4, Postgresql и Strapi CMS, то Docker может стать отличным инструментом для упрощения вашего рабочего процесса. Docker позволяет упаковать приложение, его зависимости и среду выполнения в контейнер, что делает его переносимым и легко масштабируемым.
Для начала создайте файл docker-compose.yml, в котором опишите сервисы, необходимые для вашего приложения:
version: '3'
services:
nextjs:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
links:
- postgres
- strapi
postgres:
image: postgres
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydb
strapi:
image: strapi/strapi
ports:
- "1337:1337"
volumes:
- ./strapi-app:/usr/src/api
В данном примере мы создаем три сервиса: nextjs, postgres и strapi. Сервис nextjs использует собственный Dockerfile для сборки образа с приложением Next.js. Мы пробрасываем порт 3000 из контейнера, чтобы можно было обращаться к нашему приложению из браузера. Также мы монтируем текущую директорию в контейнер, чтобы вносить изменения в код и видеть их сразу в приложении. Сервис postgres использует официальный образ Postgresql, где мы задаем параметры для создания базы данных. Сервис strapi использует образ Strapi CMS, пробрасывает порт 1337 для доступа к админке и монтирует директорию с приложением.
После создания файла docker-compose.yml запустите контейнеры с помощью команды:
docker-compose up
Теперь у вас есть готовая конфигурация Docker для разработки вашего веб-приложения с использованием Next.js 13.4, Postgresql и Strapi CMS. Данная конфигурация позволяет вам легко развернуть все необходимые сервисы с минимальной конфигурацией и начать разработку вашего приложения.
Спасибо Евгений, очень классное видео. Залип на твой канал.
Подскажи пожалуйста, что может быть не так. Я склонировал твой проект с гита, попытался запустить и когда я запускаю контейнер у меня появляется ошибка что пакет @esbuild используется не для той операционки, т.к. я работаю на маке, а в докере линукс. Получается что в докер копируются node_modules а не скачиваются самостоятельно.
В файлах dockerignore прописаны node_modules и /node_modules/
Спасибо большое
Evgeni, could you share your github repo for this?
Чтобы заработал hot reload под windows 11, нужно заменить запуск на этот "dev": "WATCHPACK_POLLING=true next dev", По крайней мере мне помогло
Люди которые используют nvim Спасибо вам!
Расскажи про эту обертку над fetch() 35:54
Здравствуйте Евгений, а вы пробовали запустить это, когда у вас локально на машине не установлена node? Оно мне кажется, не работает
Женя, было бы интересно узнать как настроить для разработки и потом прода. и как это все должно взаимодействовать….
супер видео и очень актульно! есть видео как настроить WSL ?
Ребят, кто-нибудь в курсе почему при попытке добавить volumes в docker-compose для связки vite + react, выбрасывается ошибка что вместо esbuil/win32-x64 нужно установить esbuil/linux-x64, как это поправить? Поресерчил весь инет, не нашел(
Видос просто пушка , спасибо Евгений !
был бы просто рад увидеть продакшн версию
сам сейчас работаю с подобным проектом (nuxt, strapi, nginx, docker)
Something went wrong installing the "sharp" module Cannot find module '../build/Release/sharp-linux-x64.node'
А такой ошибки не было у кого нибудь?
Сделай пожалуйста видео о том как запилил wsl и настроил vim
спасибо тебе огромное
ci это не просто быстро, главное безопасно, а то даже минорное обновление библиотеки может поломать приложение)
Офигенно. Я сейчас тоже работаю с этим стэком. 👍 Было бы классно увидеть пример продакшн деплоя этой связки и реализацию поиска по всем данным из страпи разом)
О и страпи и докер, пушка
привет, а чтобы сделать всё то же самое на винде, надо будет wsl установить?
Отличное видео, все понятно и лаконично!
Было бы славно иметь побольше контента по strapi, напрмер примеры посложнее
Круто! Не забрасывай некст в таком подходе. В русском сегменте такого нет практически. Немного бы в сторону энтерпрайза :))