le but est d'accéder à un port sur une autre machine.
Si on a "mysql" dans un conteneur sur "prod.net"
Et qu'on veut y accéder depuis un conteneur sur "dev.net"
on a créé un serveur ssh dans un conteneur sur prod.net
on pourra s'y connecter comme ça :
ssh prod.net -p 2222 sshserver: ports: - target: 22 published: 2222 mode: host volumes: - "/root/.ssh:/root/.ssh:ro" - "/etc/ssh:/etc/ssh:ro"
ensuite on crée un tunnel ssh dans un conteneur sur dev.net
ça revient à faire ça dans un conteneur :
ssh -o StrictHostKeyChecking=no -N -L 0.0.0.0:3333:mysql:3306 root@prod.net -p 2222 sshtunnel: volumes: - /root/.ssh:/root/.ssh:ro environment: SSH_HOST: prod.net SSH_PORT: 2222 SSH_USER: root # on pourra se connecter au port local (sshtunnel:3333), et on tombera sur le remote (via gextra.net:2222) LOCAL_PORT: 3333 REMOTE_HOST: mysql REMOTE_PORT: 3306
et dans le projet gextra6 :
DATABASE_URL="mysql://root:xxxxxxxx@sshtunnel:3333/gextra6"