Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie vervollständige ich diesen SSH-Tunnel vom lokalen Entwicklungs-Docker zur Staging-Datenbank?

Wenn Sie möchten, dass der PHP-Container einen permanenten SSH-Tunnel zu Ihrer Remote-DB hat, können Sie den COMMAND Ihres Dockerfiles ändern -Anweisung (unter der Annahme, dass ENTRYPOINT ist eine Shell), um ein Skript zu verwenden, das den SSH-Tunnel im Hintergrund erstellt, ähnlich wie Sie manuell auf den SSH-Tunnel warten und dann mit der Ausführung fortfahren, was immer Sie ausführen möchten.

Ihrer Frage fehlen die Details dessen, was Sie erreichen möchten (permanenter Tunnel? nur während des Testens? usw.)

Ein Beispiel für ein solches 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
# ...

Ich würde vorschlagen, einen anderen Weg in Betracht zu ziehen -
Erstellen Sie einen neuen Dienst in der Docker-Compose-Datei, der dazu bestimmt ist, einen Tunnel zu öffnen, und verbinden Sie sich dann von Ihrem PHP-Dienst aus mit diesem Dienst.