FROM ubuntu:24.04 LABEL maintainer="amass <168062547@qq.com>" ENV DEBIAN_FRONTEND=noninteractive ENV CODE_VERSION=4.93.1 RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list.d/ubuntu.sources \ && apt update \ && apt install -y gcc g++ cmake ninja-build pkg-config openssh-server git nano gpg ca-certificates \ wget curl rsync lsb-release ubuntu-keyring gnupg2 libssl-dev gettext jq xz-utils zsh tini \ && install -m 0755 -d /etc/apt/keyrings \ && curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc \ && chmod a+r /etc/apt/keyrings/docker.asc \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \ && wget -O - https://openresty.org/package/pubkey.gpg | gpg --dearmor -o /usr/share/keyrings/openresty.gpg \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/openresty.gpg] http://openresty.org/package/ubuntu $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/openresty.list > /dev/null \ && curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \ && apt update \ && apt install -y docker-ce-cli openresty nodejs RUN curl -fOL https://github.com/coder/code-server/releases/download/v$CODE_VERSION/code-server_${CODE_VERSION}_amd64.deb \ && dpkg -i code-server_${CODE_VERSION}_amd64.deb \ && rm code-server_${CODE_VERSION}_amd64.deb RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" \ && git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions \ && git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting \ && git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k \ && sed -i 's/ZSH_THEME=".*"/ZSH_THEME="powerlevel10k\/powerlevel10k"/' /root/.zshrc \ && sed -i 's/plugins=(.*)/plugins=(git z zsh-autosuggestions zsh-syntax-highlighting)/' /root/.zshrc \ && chsh -s /bin/zsh root RUN git config --global core.quotepath false \ && git config --global user.email "168062547@qq.com" \ && git config --global user.name "amass" RUN mkdir /var/run/sshd \ && sed -i 's/#Port 22/Port 1022/' /etc/ssh/sshd_config \ && sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config \ && mkdir -p /root/.ssh \ && wget https://frp-by1.wwvvww.cn:44048/s/id_rsa_amass_publickey/download -O /root/.ssh/authorized_keys \ && chmod 600 /root/.ssh/authorized_keys && chown root:root /root/.ssh/authorized_keys EXPOSE 1022 RUN git config --global user.email "168062547@qq.com" \ && git config --global user.name "amass" RUN cd /root \ && apt install -y libgl1-mesa-dev libfontconfig1-dev libfreetype-dev libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-cursor-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev \ && apt install -y libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavfilter-dev libavdevice-dev \ && wget https://download.qt.io/official_releases/qt/6.7/6.7.3/single/qt-everywhere-src-6.7.3.tar.xz \ && tar -xvf qt-everywhere-src-6.7.3.tar.xz \ && cd ./qt-everywhere-src-6.7.3 \ && ./configure -prefix /opt/Qt/6.7.3/gcc_64 -opensource -debug-and-release -confirm-license -nomake examples -nomake tests -skip qtwebengine -skip qtcoap -skip qtopcua \ && cmake --build . --parallel \ && ninja install \ && rm -fr /root/qt-everywhere-src-6.7.3* \ && echo 'export PATH=/opt/Qt/6.7.3/gcc_64/bin:$PATH' >> /etc/zsh/zshenv \ && echo 'export PATH=/opt/Qt/6.7.3/gcc_64/bin:$PATH' >> /etc/profile RUN cd /root \ && wget https://frp-by1.wwvvww.cn:44048/s/boost_1_86_0/download -O boost_1_86_0.tar.gz \ && tar xvf boost_1_86_0.tar.gz > /dev/null \ && cd /root/boost_1_86_0 \ && ./bootstrap.sh --prefix=/opt/Libraries/boost_1_86_0 \ && ./b2 install -q --prefix=/opt/Libraries/boost_1_86_0 threading=multi link=shared runtime-link=shared variant=release cxxstd=17 cxxflags=-fPIC cflags=-fPIC \ && rm -fr /root/boost_1_86_0* \ && echo 'export LD_LIBRARY_PATH=/opt/Libraries/boost_1_86_0/lib:$LD_LIBRARY_PATH' >> /etc/zsh/zshenv \ && echo 'export LD_LIBRARY_PATH=/opt/Libraries/boost_1_86_0/lib:$LD_LIBRARY_PATH' >> /etc/profile RUN cd /root \ && git clone --depth=1 --recursive https://github.com/ZLMediaKit/ZLMediaKit.git \ && cd /root/ZLMediaKit \ && apt install -y libsrtp2-dev libusrsctp-dev \ && cmake -G Ninja -B build -S . -DENABLE_OPENSSL=true -DENABLE_WEBRTC=true -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/opt/Libraries/ZLMediaKit" \ && cmake --build build --target all \ && cmake --install build \ && echo 'export LD_LIBRARY_PATH=/opt/Libraries/ZLMediaKit/lib:$LD_LIBRARY_PATH' >> /etc/zsh/zshenv \ && echo 'export LD_LIBRARY_PATH=/opt/Libraries/ZLMediaKit/lib:$LD_LIBRARY_PATH' >> /etc/profile \ && rm -fr /root/ZLMediaKit ENV LD_LIBRARY_PATH=/opt/Libraries/boost_1_86_0/lib:/opt/Libraries/ZLMediaKit/lib:/opt/Qt/6.7.3/gcc_64/lib ENV LANG=C.UTF-8 ENV LC_ALL=C.UTF-8 ENV TERM=xterm-256color ENTRYPOINT ["/usr/bin/tini", "--"] CMD ["bash", "-c", "service ssh start && code-server --bind-addr 0.0.0.0:8087"] # docker build --progress=tty -f ubuntu2404.dockerfile -t frp-by1.wwvvww.cn:45288/ubuntu_dev:24.04 . # docker push frp-by1.wwvvww.cn:45288/ubuntu_dev:24.04