FROM debian:bullseye-slim # Install prerequisites## RUN apt-get update && apt-get install -y \ curl \ gnupg \ ca-certificates \ dos2unix \ wget \ tar \ bash \ --no-install-recommends && \ rm -rf /var/lib/apt/lists/* SHELL ["/bin/bash", "-c"] # Set a working directory WORKDIR /opt/app # Install tools ARG SINGBOX_VERSION=1.12.8 RUN wget -O /tmp/sing-box.tar.gz "https://github.com/SagerNet/sing-box/releases/download/v${SINGBOX_VERSION}/sing-box-${SINGBOX_VERSION}-linux-amd64.tar.gz" && \ tar -zxvf /tmp/sing-box.tar.gz -C /tmp && \ mv /tmp/sing-box-${SINGBOX_VERSION}-linux-amd64/sing-box /usr/local/bin/sing-box && \ chmod +x /usr/local/bin/sing-box && \ rm -rf /tmp/sing-box* ARG CHISEL_VERSION=1.10.1 RUN wget https://github.com/jpillora/chisel/releases/download/v${CHISEL_VERSION}/chisel_${CHISEL_VERSION}_linux_amd64.gz -O /tmp/chisel.gz && \ gunzip /tmp/chisel.gz && \ mv /tmp/chisel /usr/local/bin/chisel && \ chmod +x /usr/local/bin/chisel RUN ARCH=$(uname -m) && \ if [ "$ARCH" = "x86_64" ]; then ARCH="amd64"; fi && \ if [ "$ARCH" = "aarch64" ]; then ARCH="arm64"; fi && \ wget -O /usr/local/x-ui-linux-${ARCH}.tar.gz \ "https://github.com/MHSanaei/3x-ui/releases/latest/download/x-ui-linux-${ARCH}.tar.gz" && \ mkdir -p /usr/local/x-ui/ && \ tar -zxvf /usr/local/x-ui-linux-*.tar.gz -C /usr/local/x-ui/ --strip-components=1 && \ rm /usr/local/x-ui-linux-*.tar.gz && \ chmod +x /usr/local/x-ui/x-ui && \ cp /usr/local/x-ui/x-ui.sh /usr/bin/x-ui && \ # --- Backup original bin contents --- mkdir -p /opt/xray-backup && \ cp -r /usr/local/x-ui/bin/. /opt/xray-backup/ # Copy all files from the build context (huggingface-x-ui-final) into the work directory COPY . . # Copy certificates #COPY certs/ /usr/local/x-ui/ssl/ # Make scripts executable RUN chmod +x /opt/app/warp_proxy.sh && \ chmod +x /opt/app/start.sh # Expose the x-ui port EXPOSE 2023 # Set the entrypoint to our startup script RUN chmod -R 777 /usr/local/x-ui/ ENTRYPOINT ["/bin/bash", "-c", "/opt/app/start.sh"]