# 1. Sử dụng Image Kasm Core chuẩn FROM kasmweb/core-ubuntu-jammy:1.14.0 USER root # 2. Cài đặt OpenSSH Client (bắt buộc cho Pinggy) và thư viện Data Analyst RUN apt-get update && \ apt-get install -y openssh-client sudo htop git python3 python3-pip wget curl && \ pip3 install pandas numpy matplotlib openpyxl && \ echo "kasm_user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers && \ rm -rf /var/lib/apt/lists/* # 3. Khắc phục lỗi quyền hạn trên Hugging Face RUN mkdir -p /tmp/kasm_home && \ chmod -R 777 /tmp/kasm_home && \ chown -R 1000:0 /tmp/kasm_home # 4. Cấu hình môi trường Kasm ENV VNC_PW=thaodev ENV VNC_PORT=6901 ENV APP_PORT=6901 ENV HOME=/tmp/kasm_home ENV KASM_USER="kasm_user" WORKDIR /tmp/kasm_home # 5. TẠO SCRIPT KHỞI CHẠY TỰ ĐỘNG (Kasm + Pinggy) # Dùng tcp@a.pinggy.io để Pinggy không bị lỗi với HTTPS tự ký của Kasm RUN echo '#!/bin/bash\n\ echo "Khởi động KasmVNC Desktop..."\n\ /dockerstartup/vnc_startup.sh &\n\ sleep 5\n\ echo "=========================================================="\n\ echo "ĐANG TẠO LINK TRUY CẬP QUA PINGGY.IO..."\n\ echo "Tìm đường link có dạng tcp://xyz.pinggy.link:port"\n\ echo "Khi truy cập, hãy đổi chữ tcp:// thành https:// nhé!"\n\ echo "=========================================================="\n\ ssh -p 443 -R0:localhost:6901 -o StrictHostKeyChecking=no -o ServerAliveInterval=30 tcp@a.pinggy.io\n\ ' > /tmp/start.sh && chmod +x /tmp/start.sh # 6. Chuyển về User 1000 để chạy an toàn USER 1000 # 7. Khởi chạy Script CMD ["/tmp/start.sh"]