РазвертываниеДеплой локального кода

Развертывание из локального кода

Команда lizard up загружает текущую папку напрямую. Используйте её, если код не на GitHub или вы хотите быстро проверить изменения. Команда упаковывает папку в tarball, отправляет на узлы сборки и запускает деплой. Команды для каждого стека см. в руководствах по React, Vue, Astro, SvelteKit, Hugo, Docusaurus, VitePress, FastAPI и Streamlit.

Развернуть текущую директорию

lizard up
  • Загружает текущую директорию как tarball. Внутри git-репозитория учитывает .gitignore. Вне git или с --no-gitignore пропускает только фиксированный список папок сборки и зависимостей (node_modules, .git, dist, .next, build, __pycache__, .venv, venv, .cache, coverage, .turbo, .vercel), а также .DS_Store, *.pyc, *.pyo и *.log, поэтому файлы .env загружаются. Предварительно выполните git init или уберите секреты из директории.
  • Принудительно включает sourceType=upload.
  • Выводит логи сборки через SSE и печатает живой URL по завершении.

Если папка ещё не привязана к проекту, up привязывает её к проекту по умолчанию вашего аккаунта (самому старому проекту в вашем личном рабочем пространстве; у новых аккаунтов это <username>'s Project) и сообщает об этом. Команда ничего не спрашивает ни в терминале, ни в CI. Чтобы развернуть код в другом проекте, сначала выполните lizard init --name <project> или передайте --project <name>. lizard init --force перепривязывает папку.

Без --service команда up развёртывает код в сервис, привязанный к папке. Если такого нет, она берёт имя из package.json или имя папки (в терминале просит его подтвердить). Если в проекте уже есть сервис с таким именем, up развёртывает код в него, даже если это GitHub-сервис, и переключает его на sourceType=upload. Порт этому сервису она тоже задаёт как новому: --port, строка EXPOSE из локального файла или 3000. Иначе она создаёт сервис. Чтобы выбрать сервис, передайте --service <name>; имя, которого ещё нет, создаёт такой сервис.

Основные флаги

ФлагНазначение
-s, --service <name>Сервис для деплоя; новое имя создаёт сервис
-p, --project <name>Развернуть в этот проект вместо привязанного или проекта по умолчанию
--build-command <cmd>Переопределить команду сборки
--start-command <cmd>Переопределить команду запуска
--pre-deploy-command <cmd>Запускать в начале каждого контейнера перед командой запуска; требует --start-command (см. конфигурация сборки)
--port <number>Порт контейнера (0 = режим воркера)
--region <code>Регион для нового сервиса (для существующих сервисов игнорируется)
-d, --detachЗапустить деплой и выйти без стриминга логов
-c, --ciВывод, дружественный к CI
--no-gitignoreНе учитывать .gitignore и взять вместо него фиксированный список исключений (собранные dist/ и build/ всё равно не загружаются)
lizard up --service api --start-command "node server.js" --port 8080

Установка команд сборки и запуска

Передача --build-command или --start-command сохраняет её в сервисе и переключает сервис на путь синтезированного Dockerfile, если не задан dockerfilePath. На этом пути Procfile и package.json scripts.start не считываются — задавайте команду запуска явно. Подробнее в разделе Конвейер сборки. Чаще всего это касается Python: Django, Flask и FastAPI требуют разную строку gunicorn или uvicorn.

Повторное развертывание upload-сервиса

lizard up повторно загружает и пересобирает. Чтобы пересобрать последнюю загрузку с текущими переменными без повторной загрузки:

lizard redeploy --service api

Headless / CI

В CI непривязанная папка тоже развёртывается в проект по умолчанию. Чтобы развернуть код в выбранном проекте, сначала привяжите его:

export LIZARD_TOKEN=liz_xxx   # create one with: lizard keys create <name>
lizard init --name my-project
lizard up --ci --service api

Когда лучше выбрать GitHub

Загрузка отлично подходит для быстрой итерации и ситуаций без удалённого репозитория. Для всего долгоживущего предпочитайте источник из GitHub, чтобы пуши автоматически переразвертывали приложение и у вас была чистая история деплоев.

См. также

Обновлено