Switching an app from Dockerfile to Docker Image deploys can cause the app to become unroutable, because the kubernetes service uses the type=web selector instead of type=cms.
Looking at the api_app table in the deis database shows that the structure column of the affected app contains {"web":0,"cmd":1} which causes the controller to choose the wrong selector.
Manually updating the structure column to {"cmd":1} and re-pulling the image fixes the problem.
The problem was observed in a cluster running workflow v2.14.0 for both the initial Dockerfile deploy and all following releases of the app:
v7 2017-08-07T17:29:32Z buenemann deployed registry.example.com/buenemann/shop-api-cache
v6 2017-08-07T17:25:01Z buenemann deployed registry.example.com/buenemann/shop-api-cache
v5 2017-08-07T17:22:29Z buenemann added IMAGE_PULL_POLICY
v4 2017-05-30T20:01:51Z buenemann deployed registry.example.com/buenemann/shop-api-cache
v3 2017-05-30T20:01:16Z buenemann added registry info password, username
v2 2017-05-30T20:00:52Z buenemann added CACHE_SIZE, PURGE_NET, BACKEND_PORT, BACKEND_HOST, PORT
v1 2017-05-30T19:59:33Z buenemann created initial release
The app was running fine on v6, but I likely fixed the kubernetes service selector using kubectl edit previously and forgot about it, so the problem came back to to the stale proctype config in the deis database.
This problem looks similar to what was reported in deis/workflow#658 and should have been fixed in workflow v2.12 according to the PR #1201.
So either this fix was not sufficient or there was a regression.