Развертывание Astro на Lizard
Astro имеет два пути развертывания на Lizard: обслуживание статического каталога dist/ на порту 80 или запуск автономного адаптера Node на порту 3000 для маршрутов по запросу. Выберите режим перед развертыванием, так как адаптер меняет и вывод, и среду выполнения.
Выбор режима
| Режим | Конфигурация | Среда выполнения | Порт |
|---|---|---|---|
| Статический сайт | Статический вывод без серверного адаптера | nginx обслуживает dist/ | 80 |
| Node-сервер | @astrojs/node в автономном режиме | node ./dist/server/entry.mjs | 3000 |
Оба пути используют скрипт 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 года и их ограничений.