Hvis du ønsker, at PHP-containeren skal have en permanent SSH-tunnel til din eksterne DB, kan du ændre din Dockerfiles COMMAND
sætning (under forudsætning af ENTRYPOINT
er en shell) for at bruge et script, der opretter SSH-tunnelen i baggrunden, svarende til hvad du manuelt, vent på SSH-tunnelen og fortsæt derefter med at køre, hvad det er, du vil køre.
Dit spørgsmål mangler detaljerne om, hvad du forsøger at opnå (permanent tunnel? kun under test? osv.)
Et eksempel på et sådant 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
# ...
Jeg vil foreslå at overveje en anden sti -
Opret en ny tjeneste i docker-compose-filen, der er dedikeret til at åbne en tunnel, og opret derefter forbindelse til denne tjeneste fra din PHP-tjeneste.