Falha na compilação devido a incompatibilidade de versão do ruby

Sim. Isso não vai funcionar. Nunca funcionou. Eu não sei como alguém sugeriu que funcionaria. Eu não sei como eu não percebi que alguém sugeriu que funcionaria. E o ponto da configuração de dois contêineres é que você quase nunca atualiza os dados.

Se você precisar atualizar os dados, então você precisa desligar apenas o web e então reconstruir os dados, depois o web_only. Eu atualizei o OP.

Se você receber erros de conflito de porta, é provável que quando o docker reiniciou, ele primeiro reiniciou o contêiner antigo do aplicativo e é ele que está pegando a porta. Você pode verificar com

docker ps

e ver se app está rodando. Você espera que esteja, pois isso explicará o problema da porta.
Você provavelmente precisa

 docker stop app; docker rm app
3 curtidas