Jeśli chcesz, aby kontener PHP miał stały tunel SSH do zdalnej bazy danych, możesz zmienić COMMAND
pliku Dockerfile instrukcja (zakładając ENTRYPOINT
jest powłoką), aby użyć skryptu, który tworzy tunel SSH w tle, podobnie do tego, co robisz ręcznie, poczekaj na tunel SSH, a następnie przejdź do uruchomienia tego, co chcesz uruchomić.
Twoje pytanie nie zawiera szczegółów tego, co chcesz osiągnąć (stały tunel? tylko podczas testowania? itp.)
Przykład takiego skryptu:
# 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
# ...
Sugeruję rozważenie innej ścieżki -
Utwórz nową usługę w pliku docker-compose, która jest przeznaczona do otwierania tunelu, a następnie połącz się z tą usługą z Twojej usługi PHP.