我正在尝试安装 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"]
错误是 > [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 .这是我得到的输出的屏幕截图:
一些观察:
- 我在其中一条评论中看到,您尝试使用此标志运行 docker build,但它仍然无效。这是因为,如果您仔细观察,“RUN hugo version”行是“CACHED”。而这个标志
--progress=plain
显示了未缓存或新执行的行的中间步骤。 因此,如果您希望查看输出,您需要先使用以下命令清除 docker 构建缓存和所有悬空图像:
$docker builder prune -a
$docker image prune -a
完成这一步后,您将能够重新执行所有构建步骤,并且能够看到RUN hugo version
的输出。
- 为了让你的 hugo 容器在你从你构建的图像中旋转后保持运行,你需要指定
CMD
或ENTRYPOINT
命令。这些 dockerfile 指令指定的命令仅在您从已构建的图像中旋转容器时执行,而不是在构建图像时执行。例如,如果我的 dockerfile 是:
FROM debian:11.3
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
hugo
CMD hugo version
构建期间的输出将是:
指令CMD hugo version
没有执行。
在我通过命令从这个构建的镜像运行一个容器之后: 然后只有我会看到这条指令的输出。
我希望这有助于加深理解!
关于bash - Docker 下载并安装二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72463871/