Bereitstellung aus lokalem Code
Mit lizard up lädst du das aktuelle Verzeichnis direkt hoch, etwa wenn der Code nicht auf GitHub liegt oder du Änderungen schnell testen willst. Die CLI packt das Verzeichnis als Tarball und sendet es zum Bauen und Bereitstellen an die Build-Knoten. Welche Befehle jeder Stack braucht, steht in den Anleitungen für React, Vue, Astro, SvelteKit, Hugo, Docusaurus, VitePress, FastAPI und Streamlit.
Das aktuelle Verzeichnis bereitstellen
lizard up- Lädt das aktuelle Verzeichnis als Tarball hoch. Innerhalb eines Git-Repositorys wird
.gitignorebeachtet. Außerhalb von Git oder mit--no-gitignorewird nur eine feste Liste von Build- und Abhängigkeitsordnern (node_modules,.git,dist,.next,build,__pycache__,.venv,venv,.cache,coverage,.turbo,.vercel) sowie.DS_Store,*.pyc,*.pyound*.logübersprungen, sodass.env-Dateien hochgeladen werden. Führe zuvorgit initaus oder lagere Secrets aus. - Erzwingt
sourceType=upload. - Streamt Build-Logs über SSE und gibt nach Abschluss die Live-URL aus.
Wenn der Ordner noch nicht mit einem Projekt verknüpft ist, verknüpft up ihn mit dem Standardprojekt deines Kontos (dem ältesten Projekt in deinem persönlichen Workspace, bei neuen Konten <username>'s Project) und meldet das. Es fragt nicht nach, weder im Terminal noch in CI. Um in ein anderes Projekt zu deployen, führe zuerst lizard init --name <project> aus oder übergib --project <name>. lizard init --force verknüpft einen Ordner neu.
Ohne --service deployt up in den Service, der mit dem Ordner verknüpft ist. Ist keiner verknüpft, nimmt es den Namen aus package.json oder vom Ordner (im Terminal musst du ihn bestätigen). Hat das Projekt schon einen Service mit diesem Namen, deployt up in diesen, auch in einen GitHub-Service, den es auf sourceType=upload umstellt. Außerdem setzt es den Port dieses Service wie bei einem neuen: --port, die lokale EXPOSE-Zeile oder 3000. Sonst legt es den Service an. Mit --service <name> wählst du selbst; ein Name, den es noch nicht gibt, legt diesen Service an.
Häufige Flags
| Flag | Zweck |
|---|---|
-s, --service <name> | Service, in den deployt wird; ein neuer Name legt ihn an |
-p, --project <name> | In dieses Projekt deployen statt in das verknüpfte oder das Standardprojekt |
--build-command <cmd> | Den Build-Befehl überschreiben |
--start-command <cmd> | Den Start-Befehl überschreiben |
--pre-deploy-command <cmd> | Zu Beginn jedes Containers vor dem Start-Befehl ausführen; erfordert --start-command (siehe Build-Konfiguration) |
--port <number> | Container-Port (0 = Worker-Modus) |
--region <code> | Region für einen neuen Service (wird bei bestehenden Services ignoriert) |
-d, --detach | Bereitstellung starten und beenden, ohne Logs zu streamen |
-c, --ci | CI-freundliche Ausgabe |
--no-gitignore | .gitignore ignorieren und stattdessen die feste Ausschlussliste nutzen (ein gebautes dist/ oder build/ bleibt trotzdem draußen) |
lizard up --service api --start-command "node server.js" --port 8080Build-/Start-Befehle festlegen
Wenn du --build-command oder --start-command übergibst, wird der Befehl im Service gespeichert und der Service wechselt auf den Pfad mit dem synthetisierten Dockerfile, sofern dockerfilePath nicht gesetzt ist. Auf diesem Pfad werden Procfile und package.json scripts.start nicht gelesen — setze den Start-Befehl daher explizit. Siehe Build-Pipeline. Besonders oft tritt das bei Python auf: Django, Flask und FastAPI benötigen jeweils eine andere Zeile für gunicorn oder uvicorn.
Einen Upload-Service erneut bereitstellen
lizard up lädt erneut hoch und baut neu. Um den letzten Upload mit den aktuellen Variablen neu zu bauen, ohne erneut hochzuladen:
lizard redeploy --service apiHeadless / CI
In CI deployt ein nicht verknüpfter Ordner ebenfalls in dein Standardprojekt. Um in ein bestimmtes Projekt zu deployen, verknüpfe es zuerst:
export LIZARD_TOKEN=liz_xxx # create one with: lizard keys create <name>
lizard init --name my-project
lizard up --ci --service apiWann GitHub stattdessen besser ist
Upload eignet sich hervorragend für schnelle Iterationen und Situationen ohne Remote. Für alles, was langfristig läuft, ist eine GitHub-Quelle die bessere Wahl, damit Pushes automatisch neu bereitgestellt werden und du eine saubere Bereitstellungshistorie erhältst.
Siehe auch
lizard up— die vollständige Befehlsreferenz.- Build-Pipeline — wie dein Stack erkannt und gebaut wird.
Aktualisiert