共计 2522 个字符,预计需要花费 7 分钟才能阅读完成。
参考:https://github.com/TeriyakiGod/steamcmd-docker-arm64
文末有 Dockerfile 内容,或参考: https://github.com/TeriyakiGod/steamcmd-docker-arm64/blob/main/Dockerfile
随意路径新建并进入目录 steamcmd,此处为家目录:
mkdir ~/steamcmd
cd ~/steamcmd
创建 Dockerfile 并将后面的 Dockerfile 内容贴进去,保存:
vi Dockerfile
编译:
docker build -t steamcmd-arm64 .
编译好后创建容器,端口可自行修改,连入后会自动更新,更新完输入 quit 退出:
docker run –name steamcmd -p 8211:8211/udp -p 27015:27015/udp -it steamcmd-arm64
quit
再次启动容器:
docker start steamcmd
进入容器:
docker exec -it steamcmd /bin/bash
容器内执行:
FEXBash ./steamcmd.sh
STEAM 命令行下执行:
login anonymous
app_update 2394010 validate
app_update 1007
quit
容器内执行:
mkdir -pv /home/steam/.steam/sdk64
ln -sv /home/steam/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so /home/steam/.steam/sdk64/steamclient.so
启动帕鲁服务端并送到后台执行:
setsid FEXBash ./steamapps/common/PalServer/PalServer.sh
Dockerfile 内容:
- # Use the official Ubuntu 22.04 as the base image
- FROM ubuntu:22.04
- # Set environment variables to avoid interactive prompts
- ENV DEBIAN_FRONTEND=noninteractive
- # Install necessary dependencies
- RUN apt-get update && \
- apt-get install -y \
- git \
- cmake \
- ninja-build \
- pkg-config \
- ccache \
- clang \
- llvm \
- lld \
- binfmt-support \
- libsdl2-dev \
- libepoxy-dev \
- libssl-dev \
- python-setuptools \
- g++-x86-64-linux-gnu \
- nasm \
- python3-clang \
- libstdc++-10-dev-i386-cross \
- libstdc++-10-dev-amd64-cross \
- libstdc++-10-dev-arm64-cross \
- squashfs-tools \
- squashfuse \
- libc-bin \
- expect \
- curl \
- sudo \
- fuse
- # Create a new user and set their home directory
- RUN useradd -m -s /bin/bash fex
- RUN usermod -aG sudo fex
- RUN echo “fex ALL=(ALL) NOPASSWD: ALL” >> /etc/sudoers.d/fex
- USER fex
- WORKDIR /home/fex
- # Clone the FEX repository and build it
- RUN git clone –recurse-submodules https://github.com/FEX-Emu/FEX.git && \
- cd FEX && \
- mkdir Build && \
- cd Build && \
- CC=clang CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_LINKER=lld -DENABLE_LTO=True -DBUILD_TESTS=False -DENABLE_ASSERTIONS=False -G Ninja .. && \
- ninja
- WORKDIR /home/fex/FEX/Build
- RUN sudo ninja install && \
- sudo ninja binfmt_misc_32 && \
- sudo ninja binfmt_misc_64
- RUN sudo useradd -m -s /bin/bash steam
- RUN sudo apt install wget
- USER root
- RUN echo ‘root:steamcmd’ | chpasswd
- USER steam
- WORKDIR /home/steam/.fex-emu/RootFS/
- # Set up rootfs
- RUN wget -O Ubuntu_22_04.tar.gz https://www.dropbox.com/scl/fi/16mhn3jrwvzapdw50gt20/Ubuntu_22_04.tar.gz?rlkey=4m256iahwtcijkpzcv8abn7nf
- RUN tar xzf Ubuntu_22_04.tar.gz
- RUN rm ./Ubuntu_22_04.tar.gz
- WORKDIR /home/steam/.fex-emu
- RUN echo ‘{“Config”:{“RootFS”:”Ubuntu_22_04″}}’ > ./Config.json
- WORKDIR /home/steam/Steam
- # Download and run SteamCMD
- RUN curl -sqL “https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz” | tar zxvf –
- ENTRYPOINT FEXBash ./steamcmd.sh