kamal icon indicating copy to clipboard operation
kamal copied to clipboard

Deploy by role does not work

Open morgoth opened this issue 11 months ago • 2 comments

I have 2 hosts - one is for web, the other for job + notification services. When I run bin/kamal deploy -d production -r notification, I'm getting:

docker stdout: Nothing written
docker stderr: docker: open .kamal/env/roles/route-optimizer-web-production.env: no such file or directory.

There is no web role on this host, so this shouldn't be needed there. The deploy to all servers runs fine, ie bin/kamal deploy -d production

kamal version: 1.3.1

morgoth avatar Mar 07 '24 07:03 morgoth

For additional context: This seems to be due to initial container healthcheck step which is performed with the primary role.

kamal deploy -r secondary-role

Ensure app can pass healthcheck...
  INFO [703ee48c] Running docker run --detach --name healthcheck-primary-role --publish 3999:80 --label service=healthcheck-primary-role -e KAMAL_CONTAINER_NAME="healthcheck-primary-role" --env-file .kamal/env/roles/primary-role.env --health-cmd "curl -f http://localhost/up || exit 1"
  INFO [a8ccc7f3] Finished in 0.075 seconds with exit status 123 (failed).
Releasing the deploy lock...
  Finished all in 22.6 seconds
  ERROR (SSHKit::Command::Failed): Exception while executing on host 192.168.0.11: docker exit status: 125
docker stdout: Nothing written
docker stderr: docker: open .kamal/env/roles/primary-role.env: no such file or directory.

argia-andreas avatar Apr 06 '24 09:04 argia-andreas

This should be fixed by https://github.com/basecamp/kamal/pull/740

djmb avatar May 02 '24 12:05 djmb