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: 3306et dans le projet gextra6 :
DATABASE_URL="mysql://root:xxxxxxxx@sshtunnel:3333/gextra6"