import os import subprocess import time import threading import gradio as gr def install_and_run_code_server(): # 切换路径并检查下载 cmd = """ if [ ! -f "./code-server/bin/code-server" ]; then echo "Downloading code-server..." curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone --prefix=./code-server fi # 在后台独立运行 code-server,监听 7860 端口,关闭内置密码认证 ./code-server/bin/code-server --bind-addr 0.0.0.0:7860 --auth none --disable-telemetry /home/user/app """ subprocess.run(cmd, shell=True) # 在单独的守护线程中启动 code-server threading.Thread(target=install_and_run_code_server, daemon=True).start() # 稍等 3 秒让 code-server 准备就绪 time.sleep(3) # 用 Gradio 的 Blocks 嵌入一个全屏 HTML iframe 占位(保持 Gradio 主进程不退出) with gr.Blocks(css="footer {visibility: hidden}") as demo: gr.HTML("""
""") if __name__ == "__main__": # 启动 Gradio,占满 7860 端口/保持服务在线 demo.launch(server_name="0.0.0.0", server_port=7860)