sql >> Database >  >> RDS >> Mysql

Hoe voltooi ik deze SSH-tunnel van lokale ontwikkelingsdocker naar staging-database?

Als u wilt dat de PHP-container een permanente SSH-tunnel naar uw externe DB heeft, kunt u de COMMAND van uw Dockerfile wijzigen statement (uitgaande van het ENTRYPOINT is een shell) om een ​​script te gebruiken dat de SSH-tunnel op de achtergrond maakt, vergelijkbaar met wat u handmatig doet, wacht op de SSH-tunnel en ga dan verder met het uitvoeren van wat u maar wilt.

Uw vraag mist de details van wat u probeert te bereiken (permanente tunnel? alleen tijdens het testen? enz.)

Een voorbeeld van zo'n 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
# ...

Ik stel voor om een ​​ander pad te overwegen -
Maak een nieuwe service in het docker-compose-bestand dat is bedoeld om een ​​tunnel te openen, en maak vervolgens verbinding met die service vanuit uw PHP-service.




  1. MYSQL sum() voor verschillende rijen

  2. MySQL-tijdstempel selecteer datumbereik

  3. Hoe verwerkt Oracle opgeslagen functieaanroepen in SQL?

  4. Een mySQL-query uitvoeren als een cron-taak?