首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下载并安装二进制文件

下载并安装二进制文件
EN

Stack Overflow用户
提问于 2022-06-01 14:48:35
回答 2查看 451关注 0票数 3

我试图按照以下指导原则在docker文件中安装雨果工具

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

我所做的是

代码语言:javascript
复制
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 --如何将它添加到路径中,我假设如果我下载它,它应该在那里,但没有。知道吗?

更新

当我将它更改为RUN hugo version

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

代码语言:javascript
复制
#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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-06 09:19:04

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

当我使用这个标志:--progress=plain运行docker命令时,我可以看到运行命令的“非缓存”行的输出。更多细节可以在这个答案中找到。下面是我得到的输出的截图:

几点意见:

  1. 我在其中一个注释中看到,您试图使用此标志运行docker构建,但它仍然不起作用。这是因为,如果你仔细观察,“运行雨果版本”行是“缓存”。此标志--progress=plain显示未缓存或新执行的行的中间步骤。因此,如果您希望查看输出,首先需要使用以下命令清除您的停靠程序构建缓存和所有悬空图像:
代码语言:javascript
复制
$docker builder prune -a
$docker image prune -a

在这一步之后,您将能够新地执行所有构建步骤,并能够看到RUN hugo version的输出。

  1. 为了使hugo容器在从构建的映像中旋转之后继续运行,您需要指定CMDENTRYPOINT命令。使用这些dockerfile指令指定的命令只有在从已经构建的映像中旋转容器时才会执行,而不是在生成映像时执行。例如,如果我的dockerfile是:
代码语言:javascript
复制
FROM debian:11.3
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
         hugo
CMD hugo version

构建过程中的输出将是:

没有执行指令CMD hugo version

在通过命令从此构建的映像运行容器之后:

只有我才会看到这个指令的输出。

我希望这有助于建立理解!

票数 4
EN

Stack Overflow用户

发布于 2022-06-12 20:38:52

您可以使用docker build命令运行--no-cache来查看没有缓存的输出:

完整的Dockerfile:

代码语言:javascript
复制
FROM debian:11.3
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
         hugo
RUN hugo version

全员指挥:

代码语言:javascript
复制
docker build . --progress plain --no-cache

这显示:

代码语言:javascript
复制
#6 [3/3] RUN hugo version
#6 sha256:d032565cca2aac041e6791690dbcb32f2dc9d024d05699f67d21eb51cb39b0fc
#6 0.494 Hugo Static Site Generator v0.80.0/extended linux/amd64 BuildDate: 2021-07-18T09:31:51Z (debian 0.80.0-6+b5)
#6 DONE 0.5s

此外,在使用[]-syntax时,需要将命令和参数分开,这样看起来就像RUN ["hugo", "version"]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72463871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档