FROM cloudflare/cloudflared:latest AS tunnel-provider FROM docker.io/library/ubuntu:22.04 ENV DEBIAN_FRONTEND=noninteractive USER root COPY --from=tunnel-provider /usr/local/bin/cloudflared /usr/local/bin/cloudflared RUN apt-get update && apt-get install -y \ openssh-server openssh-client curl wget sudo git python3 \ && rm -rf /var/lib/apt/lists/* RUN mkdir /var/run/sshd RUN echo 'root:628941' | chpasswd RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN echo '#!/bin/bash\n\ mkdir -p /data/ssh_host\n\ if [ -z "$(ls -A /data/ssh_host)" ]; then\n\ cp -r /etc/ssh/ssh_host_* /data/ssh_host/\n\ else\n\ cp -r /data/ssh_host/* /etc/ssh/\n\ fi\n\ mkdir -p /data/root_home\n\ if [ ! -L /root ]; then\n\ cp -a /root/. /data/root_home/\n\ rm -rf /root\n\ ln -s /data/root_home /root\n\ fi\n\ cloudflared tunnel --no-autoupdate run --token "eyJhIjoiNzU5M2FlOTk2ZDA2NzYyNWJiYmVhYWZlYjU5NTAwZDMiLCJ0IjoiNzI3NzQ0NGMtZWYxOS00MWEzLWI2M2EtNmMyZWFkM2FjOGFjIiwicyI6Ik5EQXlOekV3TURBdE1qWTBOUzAwTkRZeExUZzBOREF0TjJOa09HVXhNemN6WXpVeSJ9" > /var/log/cloudflared.log 2>&1 &\n\ /usr/sbin/sshd\n\ cd /tmp && python3 -m http.server 7860 &\n\ MINI_PID=$!\n\ sleep 30\n\ kill $MINI_PID\n\ while true; do sleep 3600; done\n\ ' > /start.sh && chmod +x /start.sh EXPOSE 7860 CMD ["/start.sh"]