[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"problem-detail-warning-health-ok":3},{"stack":4,"error":5,"seoName":6,"seoStack":7,"seo":8,"breadcrumb":10,"titlePrefix":18,"titleAccent":6,"lead":19,"facts":22,"why":37,"log":47,"fix":84,"engine":100,"related":107,"pitch":139},"compose","health-ok","Laravel deploy completes, but the Node service keeps restarting","Docker Compose, Dockerfile, Laravel",{"description":9},"The application is restarting, not running. Docker reports tianji (running, last exit 0, restarted 1 time). It may answer between restarts, but it does not stay",[11,14,17],{"label":12,"href":13},"App Installations","\u002Fapps",{"label":15,"href":16},"Docker Compose","\u002Fapps\u002Fstacks\u002Fcompose",{"label":6},"",[20],{"text":21},"The application is restarting, not running. Docker reports tianji (running, last exit 0, restarted 1 time). It may answer between restarts, but it does not stay up. Read the container output with container_service_logs; the reason it exits is there. A process that exits 0 is restarted too, e.g. a command ending in a shell with no TTY.",[23,28,31,33],{"label":24,"value":25,"tone":26,"tooltip":27},"Type","Warning","warn","An issue PanelAlpha Engine catches around a deploy that does not break it. It tells you, before or after, that you may need to do something.",{"label":29,"value":30},"Seen","35 times · 3 variants",{"label":32,"value":7},"Where",{"label":34,"value":35,"tooltip":36},"Status","Observed","Our team will look into this soon, verify the cause and try to fix it in an upcoming release.",{"heading":38,"body":39},"Why it happens",[40,42,45],{"text":41},"The Laravel application built and is reachable on port 8000, but the ",{"text":43,"code":44},"node",true,{"text":46}," dependency from Docker Compose is restarting. This leaves the deployment only partially usable: pages that depend on that service may fail. The available telemetry does not include the Node container’s underlying error.",{"heading":48,"block":49},"What the log looks like",{"header":50,"lines":51},"Deploy log",[52,56,60,64,68,72,76,80],{"segments":53},[54],{"text":55},"Detected project type: Laravel",{"segments":57},[58],{"text":59},"Using strategy: laravel",{"segments":61},[62],{"text":63},"Keeping runtime services from compose: db, node",{"segments":65},[66],{"text":67},"...",{"segments":69},[70],{"text":71},"Detected application port: 8000",{"segments":73},[74],{"text":75},"Application health check: HTTP 302",{"segments":77},[78],{"text":79},"Docker reports node — it keeps restarting",{"segments":81},[82],{"text":83},"Dependency health: failed",{"heading":85,"steps":86,"block":97},"How to fix it",[87],[88,90,91,93,95],{"text":89},"Inspect the ",{"text":43,"code":44},{"text":92}," service output with ",{"text":94,"code":44},"container_service_logs",{"text":96}," and review its first startup error. Check its command, environment variables, mounted paths, dependency configuration, and available CPU or memory. Correct the Compose or application configuration, then redeploy or restart the service. The Composer lock-file warning is separate and did not stop this build.",{"header":98,"lines":99},"Fix by hand",[],{"heading":101,"body":102,"block":105},"How PanelAlpha Engine solves it",[103],{"text":104},"Expose the restarting service’s first failure directly in the deployment result and link to its container logs. Keep the deployment marked partial when the main app responds but a declared dependency is unhealthy.",{"header":18,"lines":106},[],{"heading":108,"items":109},"Apps affected",[110,115,119,123,127,130,133,136],{"title":111,"badge":112,"tone":113,"href":114},"bookstackapp\u002Fbookstack","15 occurrences","err","\u002Fapps\u002Fbookstackapp\u002Fbookstack",{"title":116,"badge":117,"tone":113,"href":118},"directus-monorepo","8 occurrences","\u002Fapps\u002Fdirectus\u002Fdirectus",{"title":120,"badge":121,"tone":113,"href":122},"quant-ux","2 occurrences","\u002Fapps\u002Fklausschaefers\u002Fquant-ux",{"title":124,"badge":125,"tone":113,"href":126},"Mastodon · glitch-soc","1 occurrence","\u002Fapps\u002Fglitch-soc\u002Fmastodon",{"title":128,"badge":125,"tone":113,"href":129},"Mastodon · mastodon","\u002Fapps\u002Fmastodon\u002Fmastodon",{"title":131,"badge":125,"tone":113,"href":132},"Mygpo","\u002Fapps\u002Fgpodder\u002Fmygpo",{"title":134,"badge":125,"tone":113,"href":135},"TaskingAI","\u002Fapps\u002Ftaskingai\u002Ftaskingai",{"title":137,"badge":125,"tone":113,"href":138},"mkvpriority","\u002Fapps\u002Fkennethsible\u002Fmkvpriority",{"heading":140,"body":141,"footNote":142,"docsLabel":143,"docsHref":144},"Try PanelAlpha Engine yourself.","The easiest way to turn your server into a safe, controlled environment for your AI agent. Deploy, manage and maintain any project from Claude Code, Cursor, Codex or any other MCP client. Open source under Apache 2.0, free to run.","Requires Ubuntu 24.04 or 26.04 · 2 GB RAM · 1 CPU","Read the documentation","https:\u002F\u002Fpanelalpha.com\u002Fdocs"]