dPanel stops a build after 20 minutes by default, and you can raise the limit per application up to 3 hours with build.timeout. Every build and release runs as one job: clone, runtime setup, build steps and service start.
A build is the job that turns your repository into something that can run, for example by compiling it. See the Glossary.
Most applications finish well inside that. A build that compiles a lot, such as a Docker image with many PHP extensions on a small server, may not. When the limit is reached the build fails, and its log ends with context deadline exceeded.
Give a build more time
Set build.timeout in the application definition. It is a duration such as 45m, 90m or 2h, between 1m and 3h.
build:
timeout: 90m
dPanel checks the value when it starts a build. A value it cannot read, such as 90 minutes, or one outside 1 minute to 3 hours, stops the build with an error that says so. Leave it out to keep the default.
Before you raise it
- Read the failed build's Logs first. A step that hangs waiting for input fails the same way, and more time will not help.
- Try a bigger server. A build that takes an hour on the smallest size often takes minutes on the next one. See Create a cloud server.
- See all of a build's output in Deployments and rollback.
Frequently asked questions
What is the longest build dPanel allows?
3 hours. Set build.timeout: 3h. Anything longer is refused when the build starts.
Does the timeout include starting the service?
Yes. The limit covers the whole job: clone, runtime setup, build steps and service start.
Can I set the timeout in the web form?
Not yet. Put build.timeout in a .devetek/*.yml definition and pass it with dnocs application deploy --definition.