Hacking Limbo

Reading / Coding / Hacking

Octave in Docker

试图在 macOS 上用 Homebrew 安装 Octave, 然而依赖多得有点可怕,居然还要从源码编译 GCC, 吓得赶紧 Ctrl-C. 在 Docker Hub 上找了一个镜像,凑合能用,但觉得 plot() 输出的 ASCII Art 太惨,就想折腾一下 X Server 的转发。

参考 Google 到的信息,成功地在 macOS 上运行了 Octave in Docker 的 QT GUI. 关键步骤如下:

  1. 启用 XQuartz 的 "Allow connections from network clients" 设置。
  2. 运行命令 env DISPLAY=:0 /opt/X11/bin/xhost + $(ipconfig getifaddr en0), 将本机 IP 加入白名单(必须加上 env DISPLAY=:0, 否则 xhost 会报错)。
  3. 启动容器时传入 DISPLAY 环境变量, docker run -it -e DISPLAY="$(ipconfig getifaddr en0):0" octave:latest.

还有一个小问题:使用 plot 之前要先执行 graphics_toolkit gnuplot, 不然会闪退,原因不明。于是我把这个命令加到 Startup File 里了。

参考: