Перейти к содержимому

Сборка сайта Astro с помощью Docker

Docker — это инструмент для сборки, развертывания и запуска приложений в изолированных контейнерах.

Контейнеры Docker можно запускать на множестве платформ, таких как AWS, Azure или Google Cloud (EN).

  • Установленный Docker на локальной машине.
  • Файл Dockerfile в корне вашего проекта.

Создайте файл Dockerfile в корневом каталоге. Инструкции будут зависеть от того, используете ли вы статический сайт или SSR.

Этот пример собирает сайт и запускает его на Node.js (порт 4321). Требуется установленный адаптер Node.js.

Dockerfile
FROM node:lts AS runtime
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
ENV HOST=0.0.0.0
ENV PORT=4321
EXPOSE 4321
CMD ["node", "./dist/server/entry.mjs"]

Для статических сайтов удобно использовать веб-сервер NGINX.

Dockerfile
FROM node:lts AS build
WORKDIR /app
COPY . .
RUN npm install
RUN npm run build
FROM nginx:alpine AS runtime
COPY --from=build /app/dist /usr/share/nginx/html
EXPOSE 80
  1. Соберите образ командой:

    Окно терминала
    docker build -t my-astro-site .
  2. Запустите контейнер локально для проверки:

    Окно терминала
    docker run -p 8080:80 my-astro-site

    Ваш сайт станет доступен по адресу http://localhost:8080.