Vreau ca utilizatorii să poată accesa un container prin ssh. Sau, mai precis: utilizatorii gazdă pot accesa un shell containerizat. Acest lucru ar putea părea ciudat, dar funcționează:
$ cat /etc/passwd | punerea în scenă grep
staging:x:1001:1001::/home/staging:/usr/local/bin/stagingclish
$ punerea în scenă a grupurilor
staging : staging docker
$ cat /usr/local/bin/stagingclish
#!/bin/sh
cd /home/cloud/docker/myproject-staging && docker-compose run --rm --entrypoint=bash php-cli $@
php-cli
este doar o versiune personalizată din imaginea php:7.4-cli, inclusiv unele utilitare precum rsync. De asemenea, /etc/passwd este montat de la gazdă.
Mă pot autentifica cu ssh staging@myhost
.
Pot invoca comenzi:
ssh staging@myhost ls /
Se creează myproject-staging_php-cli_run...
Crearea myproject-staging_php-cli_run ... gata
CHANGELOG.md
COPYING.txt
Gruntfile.js.sample
...
Acum aș dori să pot folosi scp
și rsync
comenzi pentru a prelua/încărca fișiere din/în container.
Dar:
scp staging@myhost:/var/www/repo/auth.json.sample .
Se creează myproject-staging_php-cli_run...
Crearea myproject-staging_php-cli_run ... gata
utilizare: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limită] [-o ssh_option] [-P port] [-S program] sursă ... țintă
1
Și
rsync staging@myhost:/var/www/repo/auth.json.sample .
[... ajutor rsync...]
eroare rsync: eroare de sintaxă sau de utilizare (cod 1) la main.c(1580) [client=3.1.3]
1
rsync: conexiune închisă în mod neașteptat (0 octeți primiți până acum) [Receiver]
Eroare rsync: eroare în fluxul de date protocol rsync (cod 12) la io.c(228) [Receiver=3.2.3]
Nici măcar nu știu dacă acest lucru este posibil. Ar putea cineva să aducă puțină lumină?