Sim.
Primeiro, perceba que
depends-on
é quase totalmente inútil. O Docker não sabe nada sobre seu aplicativo; ele não tem como dizer que seu servidor de banco de dados não está realmente pronto para atender solicitações. A solução correta é codificar seu aplicativo para que (a) ele tente novamente a conexão inicial com o banco de dados até que esteja pronto e (b) ele se reconecte ao banco de dados se a conexão falhar. (a) resolve o problema sobre o qual você está perguntando e (b) permite que você reinicie o contêiner do banco de dados independente do contêiner do aplicativo.
Se você não controlar o código em seu contêiner de aplicativo, poderá agrupar seu comando principal com um script de shell que faça algo como:
while ! psql -c 'select 1'; do
sleep 1
done
(Definindo as opções de autenticação apropriadas ou configurando um
.pgpass
Arquivo)