Om du vill att PHP-behållaren ska ha en permanent SSH-tunnel till din fjärrdatabas, kan du ändra din Dockerfiles COMMAND
sats (förutsatt att ENTRYPOINT
är ett skal) för att använda ett skript som skapar SSH-tunneln i bakgrunden, liknande det du manuellt, vänta på SSH-tunneln och fortsätt sedan att köra vad det är du vill köra.
Din fråga saknar detaljer om vad du försöker uppnå (permanent tunnel? endast under testning? etc.)
Ett exempel på ett sådant skript:
# 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
# ...
Jag skulle föreslå att du överväger en annan väg -
Skapa en ny tjänst i docker-compose-filen som är dedikerad för att öppna en tunnel och anslut sedan till den tjänsten från din PHP-tjänst.