docker - 使用 Dockerfile 安装 Homebrew 软件

标签 docker debian dockerfile homebrew

我正在尝试使用 Dockerfile 安装 Homebrew 软件,但我无法这样做。我有以下声明(基于 https://docs.brew.sh/Homebrew-on-Linux 上的替代安装步骤):

RUN git clone https://github.com/Homebrew/brew ~/.linuxbrew/Homebrew \
&& mkdir ~/.linuxbrew/bin \
&& ln -s ../Homebrew/bin/brew ~/.linuxbrew/bin \
&& eval $(~/.linuxbrew/bin/brew shellenv)
RUN brew --version

最后一行抛出一个错误,提示“找不到 brew 命令”。

我能够使用 ENTRYPOINT 并指定一个 bash 文件来运行完全相同的步骤。

对此的任何帮助将不胜感激。

最佳答案

eval发生在第一个 RUN语句,但不会持续到下一个。你想加入这两个。

RUN git clone https://github.com/Homebrew/brew ~/.linuxbrew/Homebrew \
&& mkdir ~/.linuxbrew/bin \
&& ln -s ../Homebrew/bin/brew ~/.linuxbrew/bin \
&& eval $(~/.linuxbrew/bin/brew shellenv) \
&& brew --version

一般来说,您在 shell 实例中执行的任何环境更改都会在该实例终止后立即丢失。

关于docker - 使用 Dockerfile 安装 Homebrew 软件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703320/

相关文章:

mysql - 文件 mysqld.sock 被删除并不断重新创建

将 Char 转换为内核 Keycode(供 uinput 使用)

debian - 如何在控制脚本中获取当前安装的debian文件的完整路径?

bash - 从 docker 运行更长的命令

docker - 从本地(未发布)镜像构建 docker 镜像

ubuntu - 正确安装了 Dockerfile 依赖项,但生成的图像没有它

Dockerfile 找不到位于另一个目录中的入口点脚本

node.js - docker化 Node 应用程序后的内存限制是多少?

java - 从头开始为 JRE 创建 Docker 镜像

ssl - 无法验证 ip 的证书,因为它不包含任何 IP SAN