gpt4 book ai didi

docker - 在 docker build 期间在主机上执行命令

转载 作者:IT老高 更新时间:2023-10-28 12:36:31 27 4
gpt4 key购买 nike

是否可以创建 Dockerfile 在构建镜像时在主机上执行命令?

现在我在做:

./script_that_creates_magic_file.sh
docker build .

使用 Dockerfile:

FROM alpine
COPY magic_file

我希望能够做到:

docker build .

使用 Dockerfile:

FROM alpine
# invoke script_that_creates_magic_file.sh on the host
COPY magic_file

当然,这个脚本和Dockerfile在同一个目录。

最佳答案

(只是一个建议)

我们通常有以下结构来构建我们的 docker 镜像:

my-image/
├── assets
│   ├── entrypoint.sh
│   └── install.sh
├── build.sh
├── Dockerfile
├── README.md
└── VERSION
  • build.sh:您应该在此处调用 script_that_creates_magic_file.sh。其他常见任务包括下载所需文件或临时从主机复制 ssh key 。最后,这个脚本会调用 docker build .
  • Dockerfile:像往常一样,但是根据我们需要运行的命令数量,我们可能有一个 install.sh
  • install.sh:这是复制并在容器内运行,安装包,删除不必要的文件等。没有 100% 确定 - 我认为这种方法减少了层数,避免了多个单个 RUN
  • 中的命令
  • entrypoint.sh:容器的入口点。允许我们在容器启动时执行任务(如解析环境变量)并打印调试信息

我发现上述结构很方便并且可以 self 记录,因为团队中的每个人都可以构建任何图像(没有特殊说明/步骤)。 README 用于解释图像在做什么......但我不会骗你......它通常是空的......(或者有一个 h1 供 gitlab 显示) :)

关于docker - 在 docker build 期间在主机上执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42735468/

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