Nic*_*ies 23 debian x86-64 docker dockerfile apple-m1
我们正在使用 Windows 和 Mac M1 机器使用 Docker 进行本地开发,并且需要在我们的 docker 环境中获取并安装 .deb 包。
该软件包需要 amd64/arm64,具体取决于所使用的架构。
有没有办法在 docker 文件中确定这一点
if xyz === 'arm64'
RUN wget http://...../arm64.deb
else
RUN wget http://...../amd64.deb
Run Code Online (Sandbox Code Playgroud)
Rom*_*ain 23
首先,您需要检查是否没有其他(更简单的)方法可以使用包管理器来完成此操作。
您可以使用该arch命令来获取架构(相当于uname -m)。问题是它不会返回您期望的值(aarch64而不是arm64和x86_64而不是amd64)。所以你必须转换它,我已经通过sed.
RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && \
wget "http://...../${arch}.deb"
Run Code Online (Sandbox Code Playgroud)
注意:您应该在运行此命令之前添加以下代码,以防止管道链出现故障时出现意外行为。请参阅HadolintDL4006了解更多信息。
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12848 次 |
| 最近记录: |