ฉันต้องการให้ผู้ใช้เข้าถึงผ่าน ssh ไปยังคอนเทนเนอร์ หรืออย่างแม่นยำยิ่งขึ้น: ผู้ใช้โฮสต์สามารถเข้าถึงเชลล์ที่บรรจุในคอนเทนเนอร์ได้ สิ่งนี้อาจดูแปลก แต่ใช้งานได้:
$ cat /etc/passwd | การแสดงละคร grep
staging:x:1001:1001::/home/staging:/usr/local/bin/stagingclish
การจัดเตรียมกลุ่ม $
staging : การจัดเตรียมนักเทียบท่า
$ cat /usr/local/bin/stagingclish
#!/bin/sh
cd /home/cloud/docker/myproject-staging && docker-compose run --rm --entrypoint=bash php-cli $@
php-cli.php
เป็นเพียงการสร้างแบบกำหนดเองจากอิมเมจ php:7.4-cli รวมถึงยูทิลิตี้บางอย่างเช่น rsync นอกจากนี้ /etc/passwd ยังติดตั้งจากโฮสต์
ฉันสามารถเข้าสู่ระบบด้วย ssh staging@myhost
.
ฉันสามารถเรียกใช้คำสั่ง:
ssh staging@myhost ls /
กำลังสร้าง myproject-staging_php-cli_run ...
สร้าง myproject-staging_php-cli_run ... เสร็จแล้ว
CHANGELOG.md
COPYING.txt
Gruntfile.js.sample
...
ตอนนี้ฉันต้องการที่จะสามารถใช้ scp
และ รีซิงค์
คำสั่งในการดึง/อัพโหลดไฟล์จาก/ไปยังคอนเทนเนอร์
แต่:
scp staging@myhost:/var/www/repo/auth.json.sample
กำลังสร้าง myproject-staging_php-cli_run ...
สร้าง myproject-staging_php-cli_run ... เสร็จแล้ว
การใช้งาน: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program] ซอร์ส ... เป้าหมาย
1
และ
rsync staging@myhost:/var/www/repo/auth.json.sample
[... rsync ช่วยด้วย ...]
ข้อผิดพลาด rsync: ข้อผิดพลาดทางไวยากรณ์หรือการใช้งาน (รหัส 1) ที่ main.c(1580) [client=3.1.3]
1
rsync: ปิดการเชื่อมต่อโดยไม่คาดคิด (ได้รับ 0 ไบต์จนถึงตอนนี้) [ตัวรับ]
ข้อผิดพลาด rsync: ข้อผิดพลาดในสตรีมข้อมูลโปรโตคอล rsync (รหัส 12) ที่ io.c(228) [ผู้รับ = 3.2.3]
ฉันไม่รู้ด้วยซ้ำว่าเป็นไปได้ไหม ใครก็ได้ช่วยชี้ทางสว่างที