ฉันกำลังตั้งค่าสภาพแวดล้อมให้ผู้ใช้ลงชื่อเข้าใช้เครื่องผ่าน ssh เมื่อเข้าสู่ระบบ
คอนเทนเนอร์นักเทียบท่าถูกสร้างขึ้นทันทีและถูกลบออกเมื่อผู้ใช้ออกจากระบบ
วิธีนี้ใช้งานได้อย่างมีเสน่ห์แบบโต้ตอบ แต่คุณไม่สามารถส่งคำสั่งได้
ssh -p 222 [email protected] "ก้อง บลา"
ไปมัน สิ่งที่คุณได้รับคือ อุปกรณ์อินพุตไม่ใช่ TTY
การกำหนดค่าปัจจุบันคือ:
sshd_config:
กลุ่มการแข่งขัน *
forceCommand sudo /usr/local/bin/docker_shell.sh
/usr/local/bin/docker_shell.sh:
#!/bin/sh
UID=`id -u`
GID=`id -g`
HOME=`getent passwd $USER | ตัด -d: -f6`
/usr/bin/docker run --rm -w /home/$USER -v $HOME:/home/$USER \
-v /run/mysqld/mysqld.sock:/run/mysqld/mysqld.sock \
--ชนิดเมานต์=tmpfs,ปลายทาง=/tmp,tmpfs-size=10240000,tmpfs-mode=1777 \
--user $UID:$GID -ti localregistry/shell_custom:0.5
Dockerfile สำหรับคอนเทนเนอร์ shell_custom นั้นไม่สำคัญ:
จากเทือกเขาแอลป์:ล่าสุด
RUN apk เพิ่ม --no-cache bash && \
apk เพิ่ม - ไม่มีแคช mysql-client
คัดลอก bashrc /etc/profile
CMD ["/bin/bash", "--rcfile", "/etc/profile"]
ตอนนี้ฉันจะหลีกเลี่ยงปัญหา "อุปกรณ์อินพุตไม่ใช่ TTY" ได้อย่างไร คำใบ้ใด ๆ
ขอบคุณ
เอคเคฮาร์ด