Развертывание Astro на Lizard

Astro имеет два пути развертывания на Lizard: обслуживание статического каталога dist/ на порту 80 или запуск автономного адаптера Node на порту 3000 для маршрутов по запросу. Выберите режим перед развертыванием, так как адаптер меняет и вывод, и среду выполнения.

Выбор режима

РежимКонфигурацияСреда выполненияПорт
Статический сайтСтатический вывод без серверного адаптераnginx обслуживает dist/80
Node-сервер@astrojs/node в автономном режимеnode ./dist/server/entry.mjs3000

Оба пути используют скрипт build, который запускает astro build. Закоммитьте файл блокировки и сохраните путь вывода dist по умолчанию. Определение считывает конфигурацию Astro и установленные зависимости. Неиспользуемая зависимость адаптера Node сама по себе не выбирает серверный путь. Используйте буквальные значения output и настройки адаптера; динамические значения, пользовательские пути вывода и режим посредника (middleware) требуют Dockerfile.

Настройка Node-сервера

Для страниц по запросу добавьте версию адаптера Node, совместимую с вашей версией Astro:

npx astro add node

Проверьте astro.config.mjs:

import { defineConfig } from 'astro/config';
import node from '@astrojs/node';
 
export default defineConfig({
  output: 'server',
  adapter: node({ mode: 'standalone' }),
});

Автономный режим запускает собственный HTTP-сервер. Режим посредника требует отдельного сервера и не подходит для этой команды запуска. Ознакомьтесь с руководством по адаптеру Astro Node, если вам нужен посредник или смесь предварительно отрендеренных и по запросу маршрутов.

Локальное тестирование

npm ci
npm run build

Для режима Node:

HOST=0.0.0.0 PORT=3000 node ./dist/server/entry.mjs

Запросите маршрут, который действительно работает на сервере, и собранный ассет. Для статического сайта используйте npm run preview локально и проверьте сгенерированные файлы маршрутов в dist/.

Развертывание

После настройки CLI создайте проект:

lizard init --name astro-app
lizard add --service web

Для адаптера Node:

lizard up --service web --port 3000

Для статического сайта:

lizard up --service web --port 80

Используйте только команду для выбранного режима. Оставьте переопределения команды сервиса не заданными для обнаружения lizardpack. Прочитайте lizard logs --build --service web --json, затем проверьте логи выполнения и живой URL.

Переменные, сессии и маршруты

Значения, используемые для генерации статического HTML, требуют новой сборки при изменении. Серверный код может считывать переменные среды выполнения через механизмы, поддерживаемые вашей версией Astro; настройте их в переменных и секретах. Значения, видимые в браузере, не должны содержать учётные данные.

Если ваше приложение использует сессии, выберите хранилище, подходящее для перезапусков и множественных реплик. Не полагайтесь на файловую систему контейнера как на общее долговечное хранилище. См. хранилище и восстановление.

Для сайта со статическим контентом протестируйте несуществующий URL и используйте статические маршруты и 404 для возврата правильного статуса. Если развертывание SSR завершается или не обслуживает маршруты, убедитесь, что существует dist/server/entry.mjs, адаптер использует автономный режим, а порт сервиса — 3000.

См. проверенные версии и результаты в облаке для проверок развертывания 9 сентября 2026 года и их ограничений.