gpt4 book ai didi

bash - Docker 下载并安装二进制文件

转载 作者:行者123 更新时间:2023-12-05 02:28:55 26 4
gpt4 key购买 nike

我正在尝试安装 Hugo遵循此指南的 docker 文件中的工具

https://gohugo.io/getting-started/installing/#debian-and-ubuntu

我做的是下面的

FROM debian:11.3
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
hugo
RUN ["hugo version"]

除了最后一条语句 RUN ["hugo version"]

docker 构建工作正常

错误是 > [3/3] RUN ["hugo version"]: #7 0.173 container_linux.go:380: starting container process caused: exec: "hugo version": executable file not found in $ PATH 我怎样才能将它添加到路径中,我假设如果我下载它它应该在那里但没有。有什么想法吗?

更新

当我把它改成运行hugo版本

我得到了以下未打印版本的输出,知道我在这里遗漏了什么吗?

#7 [3/3] RUN hugo version
#7 sha256:d032565cca2aac041e6791690dbcb32f2dc9d024d05699f67d21eb51cb39b0fc
#7 CACHED

#8 exporting to image
#8 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00
#8 exporting layers done
#8 writing image sha256:db76bafd84f0bdf930625714a72e2d0e1967578c48df0ffd0b4fc869c802f18f done
#8 DONE 0.0s

最佳答案

当 docker build 执行行:RUN hugo version 时,默认情况下,它不会显示未从缓存中加载的运行命令的输出。因此您看不到它的输出。

当我使用此标志运行 docker build 命令时:--progress=plain,我可以看到 RUN 命令的“非缓存”行的输出。更多详细信息,请参阅 this answer .这是我得到的输出的屏幕截图: enter image description here

一些观察:

  1. 我在其中一条评论中看到,您尝试使用此标志运行 docker build,但它仍然无效。这是因为,如果您仔细观察,“RUN hugo version”行是“CACHED”。而这个标志 --progress=plain 显示了未缓存或新执行的行的中间步骤。因此,如果您希望查看输出,您需要先使用以下命令清除 docker 构建缓存和所有悬空图像:
$docker builder prune -a
$docker image prune -a

完成这一步后,您将能够重新执行所有构建步骤,并且能够看到RUN hugo version 的输出。

  1. 为了让你的 hugo 容器在你从你构建的图像中旋转后保持运行,你需要指定 CMDENTRYPOINT 命令。这些 dockerfile 指令指定的命令仅在您从已构建的图像中旋转容器时执行,而不是在构建图像时执行。例如,如果我的 dockerfile 是:
FROM debian:11.3
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
hugo
CMD hugo version

构建期间的输出将是: enter image description here指令CMD hugo version没有执行。

在我通过命令从这个构建的镜像运行一个容器之后: enter image description here然后只有我会看到这条指令的输出。

我希望这有助于加深理解!

关于bash - Docker 下载并安装二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72463871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com