Remove `stop_wait_time` and `readiness_timeout` from the root config and remove `deploy_timeout` and `drain_timeout` from the proxy config. Instead we'll just have `deploy_timeout` and `drain_timeout` in the root config. For roles that run the proxy, they are passed to the kamal-proxy deploy command. Once that returns we can assume the container is ready to shut down. For other roles, we'll use the `deploy_timeout` when polling the container to see if it is ready and the `drain_timeout` when stopping the container.
59 lines
1.1 KiB
YAML
59 lines
1.1 KiB
YAML
service: app
|
|
image: app
|
|
servers:
|
|
web:
|
|
hosts:
|
|
- vm1
|
|
- vm2
|
|
workers:
|
|
hosts:
|
|
- vm3
|
|
cmd: sleep infinity
|
|
deploy_timeout: 2
|
|
drain_timeout: 2
|
|
readiness_delay: 0
|
|
|
|
proxy:
|
|
healthcheck:
|
|
interval: 1
|
|
timeout: 1
|
|
path: "/up"
|
|
response_timeout: 2
|
|
buffering:
|
|
requests: true
|
|
responses: true
|
|
memory: 400_000
|
|
max_request_body: 40_000_000
|
|
max_response_body: 40_000_000
|
|
forward_headers: true
|
|
logging:
|
|
request_headers:
|
|
- Cache-Control
|
|
- X-Forwarded-Proto
|
|
response_headers:
|
|
- X-Request-ID
|
|
- X-Request-Start
|
|
|
|
asset_path: /usr/share/nginx/html/versions
|
|
|
|
registry:
|
|
server: registry:4443
|
|
username: root
|
|
password: root
|
|
builder:
|
|
driver: docker
|
|
arch: <%= Kamal::Utils.docker_arch %>
|
|
args:
|
|
COMMIT_SHA: <%= `git rev-parse HEAD` %>
|
|
accessories:
|
|
busybox:
|
|
service: custom-busybox
|
|
image: registry:4443/busybox:1.36.0
|
|
cmd: sh -c 'echo "Starting busybox..."; trap exit term; while true; do sleep 1; done'
|
|
roles:
|
|
- web
|
|
aliases:
|
|
whome: version
|
|
worker_hostname: app exec -r workers -q --reuse hostname
|
|
uname: server exec -q -p uname
|