我是Docker的新手,并试图通过尝试在其中运行Steam服务器来熟悉自己。
我的Dockerfile如下:
FROM ubuntu:20.10
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install -y \
curl \
ca-certificates \
libgcc1 \
&& apt-get clean autoclean \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p steam/cmd \
&& cd steam \
&& curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - -C cmd
RUN ./steam/cmd/steamcmd.sh +quit我不明白为什么最后一步会抛出这个错误:
Step 4/4 : RUN ./steam/cmd/steamcmd.sh +quit
---> Running in c3f673328fe6
./steam/cmd/steamcmd.sh: line 37: /steam/cmd/linux32/steamcmd: No such file or directory
The command '/bin/sh -c ./steam/cmd/steamcmd.sh +quit' returned a non-zero code: 127为什么./steam/cmd/steamcmd.sh会被翻译成/steam/cmd/linux32/steamcmd
步骤3/3不是将steamcmd.sh放在linux32中。
Step 3/4 : RUN mkdir -p steam/cmd && cd steam && curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf - -C cmd
---> Running in fa5dcd1fcadc
steamcmd.sh
linux32/steamcmd
linux32/steamerrorreporter
linux32/libstdc++.so.6
linux32/crashhandler.so使用WORKDIR steam/cmd,然后使用RUN也会返回相同的结果。
发布于 2020-07-24 04:45:43
查看此讨论:https://askubuntu.com/questions/133389/no-such-file-or-directory-but-the-file-exists
尝试将apt install libc6-i386作为步骤2的一部分。
RUN dpkg --add-architecture i386 \
&& apt-get update \
&& apt-get install -y \
curl \
ca-certificates \
libgcc1 \
libc6-i386 \
&& apt-get clean autoclean \
&& apt-get autoremove -y \
&& rm -rf /var/lib/apt/lists/*而且jfyi,sh文件并没有像你想的那样被“翻译”。
如果您实际打开该sh,您将看到它试图调用linux32可执行文件(它称为$STEAMEXE)。
如果你想自己解决这样的问题,下面是我调查的方法:
docker build -t helpthiscoder .docker start helpthiscoder; docker run -i -t helpthiscoder bashsh文件的内部。对于这个文件,我添加了我自己的echo $STEAMEXE来查看路径是/steam/cmd/linux32/steamcmd./steam/cmd/linux32并运行ls -lah来查看该文件是否存在,而executable.file steamcmd来获取信息。然后我发现它是32位的。linux 32-bit file not found error Ubuntu 20,找到了我在第一段中提到的链接。:/不过,我现在得到了一个不同的错误:
Redirecting stderr to '/root/Steam/logs/stderr.txt'
threadtools.cpp (3787) : Assertion Failed: Probably deadlock or failure waiting for thread to initialize.
ILocalize::AddFile() failed to load file "public/steambootstrapper_english.txt".
[ 0%] Checking for available update...
threadtools.cpp (3787) : Assertion Failed: Probably deadlock or failure waiting for thread to initialize.
Thread failed to initialize
CWorkThreadPool::StartWorkThread: Thread creation failed.
Exiting on SPEW_ABORT我会继续调查的。我强烈建议你删除你的最后一条断线,并构建一个你可以用我上面提到的方式“探索”的图像。这就是我得到这个新错误的方式。
https://stackoverflow.com/questions/63061908
复制相似问题