Docker下载并在Hugo版本中安装二进制文件

发布于 2025-02-03 16:45:36 字数 1198 浏览 3 评论 0原文

我试图安装 hugo docker文件中的工具按照此指南

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

gohugo.io/getting-started/installing/#debian-and-ubuntu DID是以下

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

docker构建工作的工作,但最后一个语句运行[“ Hugo版本”]

错误是> [3/3]运行[“ Hugo版本”]:#7 0.173 Container_linux.go:380:启动容器流程引起的造成:exec:“ Hugo版本”:$ 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

im trying to install the Hugo tool in docker file following this guideline

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

What I did is the following

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

The docker build working except the last statement RUN ["hugo version"]

the error is > [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 how can I add it to the path, I assume that if I download it it should be there but no. any idea?

UPDATE

when I change it to
RUN hugo version

I got the following output without the version printed, any idea what am I missing here?

#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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤独难免 2025-02-10 16:45:36

当Docker Build执行行:运行Hugo版本,然后默认情况下,它不会显示未从缓存中加载的运行命令的输出。因此,您没有看到它的输出。

当我使用此标志运行Docker build命令时:- progress = plain,我可以看到run命令的“非速度”行的输出。可以在中找到更多详细信息。这是我收到的输出的屏幕截图:

一些观察:

  1. 我在您尝试使用此标志运行Docker构建的一条评论中看到,但它仍然不起作用。这是因为,如果您仔细观察到“运行Hugo版本”行被“缓存”。此标志- progress = plain显示未缓存或新鲜执行的行的中间步骤。
    因此,如果您想查看输出,则需要首先使用命令清除docker构建缓存和所有悬空图像:
$docker builder prune -a
$docker image prune -a

在此步骤之后,您将能够新鲜执行所有的构建步骤,并能够看到输出运行Hugo版本

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

构建过程中的输出是:

指令CMD Hugo版本未执行。

通过命令从此构建图像中运行一个容器后:

然后,只有我才能看到此说明的输出。

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

When docker build executes the line: RUN hugo version, then by default, it does not show the output of the run commands that were not loaded from the cache. And hence you are not seeing its output.

When I ran docker build command with this flag: --progress=plain, I could see the output of "non-cached" line for RUN command. More details can be found in this answer. Here is the screenshot for the output I got:
enter image description here

A few observations:

  1. I saw in one of the comments that you tried to run docker build using this flag but it still did not work. This is because, if you closely observe, that "RUN hugo version" line is "CACHED". And this flag --progress=plain shows intermediate steps of the lines that are not cached or freshly executed.
    So, if you wish to view the output, you need to first clear your docker build cache and all the dangling images using the commands:
$docker builder prune -a
$docker image prune -a

After this step, you will be able to freshly execute all your build steps and will be able to see output of RUN hugo version.

  1. To keep your hugo container running after you spin it from the image you build, you need to specify either CMD or ENTRYPOINT command. The command specified with these dockerfile instructions are executed only when you spin a container from the image that you have already built, not when the image is being built. For example if my dockerfile is:
FROM debian:11.3
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
         hugo
CMD hugo version

The output during build would be:
enter image description here
The instruction CMD hugo version is not executed.

After I run a container from this built image via command:
enter image description here
Then only I would see the output of this instruction coming.

I hope this helps in building the understanding!

久而酒知 2025-02-10 16:45:36

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

完整dockerfile:

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

完整命令:

docker build . --progress plain --no-cache

此显示:

#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”]

You can run the docker build command with --no-cache to see the output without cache:

Full Dockerfile:

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

Full command:

docker build . --progress plain --no-cache

This displays:

#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

Also, you need to keep the command and parameters separate when using the []-syntax, so it would look like RUN ["hugo", "version"]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文