Я хочу, чтобы пользователи могли получить доступ через ssh к контейнеру. Или, точнее: пользователи хоста могут получить доступ к контейнерной оболочке. Это может выглядеть странно, но это работает:
$ кошка /etc/passwd | постановка grep
постановка: x: 1001: 1001:: / домашняя / постановка: / usr / local / bin / постановка clish
$ групповая постановка
постановка: постановка докера
$ cat /usr/local/bin/stagingclish
#!/бин/ш
cd /home/cloud/docker/myproject-staging && docker-compose run --rm --entrypoint=bash php-cli $@
php-кли
это просто пользовательская сборка из образа php:7.4-cli, включая некоторые утилиты, такие как rsync. Кроме того, /etc/passwd монтируется с хоста.
я могу войти с помощью ssh постановка@мойхост
.
Я могу вызывать команды:
ssh staging@myhost ls /
Создание myproject-staging_php-cli_run...
Создание myproject-staging_php-cli_run... сделано
CHANGELOG.md
КОПИРОВАНИЕ.txt
Gruntfile.js.sample
...
Теперь я хотел бы иметь возможность использовать SCP
и rsync
команды для извлечения/загрузки файлов из/в контейнер.
Но:
scp staging@myhost:/var/www/repo/auth.json.sample .
Создание myproject-staging_php-cli_run...
Создание myproject-staging_php-cli_run... сделано
использование: scp [-346BCpqrv] [-c шифр] [-F ssh_config] [-i идентификационный_файл]
[-l лимит] [-o ssh_option] [-P порт] [-S программа] источник ... цель
1
И
rsync staging@myhost:/var/www/repo/auth.json.sample .
[...помощь rsync...]
Ошибка rsync: ошибка синтаксиса или использования (код 1) в main.c(1580) [client=3.1.3]
1
rsync: соединение неожиданно закрыто (пока получено 0 байт) [Receiver]
ошибка rsync: ошибка в потоке данных протокола rsync (код 12) на io.c(228) [Receiver=3.2.3]
Я даже не знаю, возможно ли это. Может ли кто-нибудь принести немного света?