Docker 带有 KDB 可执行文件的容器 "No such file or directory"

Docker container with KDB executable "No such file or directory"

我正在尝试使用 docker 到 运行 kdb/q。但是我收到“没有这样的文件或目录”错误

Docker 文件:

FROM ubuntu

COPY ./ /root_dir/

WORKDIR root_dir

ENV QHOME=/root_dir/bin/q

RUN ["chmod", "+x", "/root_dir/bin/q/l32/q"]

CMD ["/bin/bash"]

我正在打开一个 bash 命令提示符,以便我可以查看它,但最终这只是 运行 直接使用 q 命令

文件布局:

- root_dir
  - bin
    - q
      - q.k
      - s.k
      - l32
        - q

建造:

sudo docker build -t dfile -f Dockerfile .

运行:

sudo docker run -it dfile

给我一个 bash 命令提示符,并尝试启动 q:

root@5e4b86578916:/root_dir# /root_dir/bin/q/l32/q

给予

bash: /root_dir/bin/q/l32/q: 没有那个文件或目录

不过我可以在那里看到它:

root@5e4b86578916:/root_dir# ls /root_dir/bin/q/l32/
q

如何从这里启动 q/any 可执行文件?

注意:我正在 运行ning q 在 Ubuntu 本地使用相同的命令,如果我使用 export 将 QHOME 设置到相同的(本地)位置然后给出可执行文件的完整路径我进入有效的 q 会话

请参阅 kdb install notes 了解如何在 64 位 linux 上 运行 32 位 kdb+。

好像需要libc6-i386转运行(64bit/32位转换)

FROM ubuntu

COPY ./ /root_dir/

WORKDIR root_dir

RUN apt-get update && apt-get install libc6-i386

ENV QHOME=/root_dir/bin/q

RUN chmod +x /root_dir/bin/q/l32/q

CMD /root_dir/bin/q/l32/q

现在可以正常工作了。我能找到的唯一文档不是很有启发性 https://packages.ubuntu.com/focal/libc6-i386