参考: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 内容:
[ol]# 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[/ol]复制代码