Сборка сайта Astro с помощью Docker
Docker — это инструмент для сборки, развертывания и запуска приложений в изолированных контейнерах.
Контейнеры Docker можно запускать на множестве платформ, таких как AWS, Azure или Google Cloud (EN).
Предварительные требования
Заголовок раздела «Предварительные требования»- Установленный Docker на локальной машине.
- Файл
Dockerfileв корне вашего проекта.
Создание Dockerfile
Заголовок раздела «Создание Dockerfile»Создайте файл Dockerfile в корневом каталоге. Инструкции будут зависеть от того, используете ли вы статический сайт или SSR.
Режим SSR
Заголовок раздела «Режим SSR»Этот пример собирает сайт и запускает его на Node.js (порт 4321). Требуется установленный адаптер Node.js.
FROM node:lts AS runtimeWORKDIR /app
COPY . .
RUN npm installRUN npm run build
ENV HOST=0.0.0.0ENV PORT=4321EXPOSE 4321CMD ["node", "./dist/server/entry.mjs"]Статический режим (NGINX)
Заголовок раздела «Статический режим (NGINX)»Для статических сайтов удобно использовать веб-сервер NGINX.
FROM node:lts AS buildWORKDIR /appCOPY . .RUN npm installRUN npm run build
FROM nginx:alpine AS runtimeCOPY --from=build /app/dist /usr/share/nginx/htmlEXPOSE 80Инструкция
Заголовок раздела «Инструкция»-
Соберите образ командой:
Окно терминала docker build -t my-astro-site . -
Запустите контейнер локально для проверки:
Окно терминала docker run -p 8080:80 my-astro-siteВаш сайт станет доступен по адресу
http://localhost:8080.