Zeabur supports multiple Dockerfiles in the same repo; they just weren't recognized because the default service naming didn't match. There are two ways to specify them:
Method 1: Name the Dockerfile after the service
Name your Dockerfile in either of the following formats, and Zeabur will automatically match it:
[service-name].Dockerfile, e.g., admin.Dockerfile
Dockerfile.[service-name], e.g., Dockerfile.admin
The naming format of Dockerfile.admin / Dockerfile.migrate / Dockerfile.proxy in your screenshot is correct. As long as you create the corresponding services named admin / migrate / proxy on Zeabur, they will automatically match the respective Dockerfiles.
Method 2: Specify via environment variables or zbpack.json
Add the following to the service's environment variables:
ZBPACK_DOCKERFILE_NAME=Dockerfile.admin
Or place a zbpack.json in the root directory of your repo:
{
"dockerfile": {
"name": "admin"
}
}
Redeploy after configuring.
Full documentation: https://zeabur.com/docs/zh-TW/deploy/dockerfile