Se você quiser que o contêiner PHP tenha um túnel SSH permanente para seu banco de dados remoto, você pode alterar o
COMMAND
do Dockerfile instrução (assumindo o ENTRYPOINT
é um shell) para usar um script que cria o túnel SSH em segundo plano, semelhante ao que você faz manualmente, aguarde o túnel SSH e depois prossiga para executar o que você deseja executar. Sua pergunta não tem os detalhes do que você está tentando alcançar (túnel permanente? apenas durante o teste? etc.)
Um exemplo para tal script:
# run ssh in background (notice the "&" at the end)
ssh -4 -R 8888:localhost:8888 [email protected]$DB_HOST -i ~/ident -p $DB_PORT &
# wait for the ssh tunnel if needed
# ...
# run the main command here
# ...
Sugiro considerar um caminho diferente -
Crie um novo serviço no arquivo docker-compose dedicado a abrir um túnel e, em seguida, conecte-se a esse serviço a partir do seu serviço PHP.