Solution skill
502 on Zeabur Docker deploy when the app uses a custom port
Complete solution
Shows how to fix 502 on Zeabur Docker deploy when the app uses a custom port. Use it when you hit this exact problem. Skip it when your error message or symptom looks different.
TL;DR
Platform bug, fixed by the Zeabur team. Maintainer yuaanlin confirmed the fix: Zeabur now automatically maps the outward port from the EXPOSE instruction in your Dockerfile, so a container listening on 8090 gets routed correctly through the bound domain.
Steps
- Platform bug, fixed by the Zeabur team. Maintainer yuaanlin confirmed the fix: Zeabur now automatically maps the outward port from the EXPOSE instruction in your Dockerfile, so a container listening on 8090 gets routed correctly through the bound domain. If you hit this 502 pattern, first make sure your Dockerfile has an EXPOSE line for the port your app actually listens on, then redeploy. No manual port mapping or reverse-proxy config is needed on current Zeabur.
When to use
You are seeing this: Issue zeabur/zeabur#77 (closed, 5 comments): A Docker container deployed on Zeabur with a custom port (8090) returns 502 on its bound domain, while the container logs show no errors. Use this skill when you run into "502 on Zeabur Docker deploy when the app uses a custom port".
When not to use
If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.
Versions
No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.
Why this happens
The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.
Evidence
In the GitHub issue gh:zeabur/zeabur#77 (https://github.com/zeabur/zeabur/issues/77), the problem reported was: Issue zeabur/zeabur#77 (closed, 5 comments): A Docker container deployed on Zeabur with a custom port (8090) returns 502 on its bound domain, while the container logs show no errors. The reporter asked whether non-80/443 ports are exposed at all. (Issue filed in Chinese; paraphrased.) The verified resolution was: Platform bug, fixed by the Zeabur team. Maintainer yuaanlin confirmed the fix: Zeabur now automatically maps the outward port from the EXPOSE instruction in your Dockerfile, so a container listening on 8090 gets routed correctly through the bound domain. If you hit this 502 pattern, first make sure your Dockerfile has an EXPOSE line for the port your app actually listens on, then redeploy. No manual port mapping or reverse-proxy config is needed on current Zeabur.
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_FiZmL_ItJ9yg3ZtgTKgWsA" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">502 on Zeabur Docker deploy when the app uses a custom port <span>— Vectle</span></a>