我正在尝试停靠一个应用程序,该应用程序有两个目录中的文件:
BOTFILES/
...
ChatScript/
BINARIES/
LinuxChatScript64
DICT/
...
在我的dockerfile中,我分别复制每个目录。
FROM alpine:3.9
# https://github.com/ChatScript/ChatScript
RUN mkdir /bot
COPY ChatScript/ /bot/ChatScript
RUN chmod +x /bot/ChatScript/BINARIES/LinuxChatScript64
COPY BOTFILES/ /bot/BOTFILES
WORKDIR /bot/ChatScript
EXPOSE 1024
CMD ["./BINARIES/LinuxChatScript64"]
这个
chmod +x
工作正常,但当我尝试运行容器时,会出现以下错误:
standard_init_linux.go:207: exec user process caused "no such file or directory"
如果我将命令行更改为
/bin/ash
,我可以得到一个工作终端,看到
BINARIES/LinuxChatScript64
文件已存在并具有执行权限。但是,如果我尝试运行它,即使是从交互终端,我也会得到
/bin/ash: ./BINARIES/LinuxChatScript64: not found
. 所以我能看到文件,我能
cat
文件,但是运行这些文件只会得到一个“找不到文件”错误。我错过了什么?