docker - 使用 Golang api 构建 docker 镜像时复制失败

标签 docker go dockerfile

我正在尝试使用官方 GO API 构建 Docker 镜像,但我在这一行遇到了问题:

COPY packages /tmp/packages

"message":"COPY failed: stat /var/lib/docker/tmp/docker-builder107969114/packages: no such file or directory"

其中packages是docker文件所在目录下的一个文件夹。

如果我只是将 docker 镜像构建到 Dockerfile 的路径,它会按预期构建。

我尝试将 WORKDIR 添加到 Dockerfile 在实际 Dockerfile 中的路径,但它似乎仍然找不到该文件夹​​。

有人知道这是怎么回事吗?

最佳答案

如果其他人遇到此问题,如果您的主机配置有任何安装,例如:

&container.HostConfig{
    Mounts:[]mount.Mount{
        {
            Source: .../somePath,
            Target: .../somePath,
        }
    }
}

您使用正确的构建上下文构建图像:

cli.ImageBuild(context.Background(), tarFile, types.ImageBuildOptions{})

在您传递的 tarFile 中,.../somePath 存在。

关于docker - 使用 Golang api 构建 docker 镜像时复制失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50393903/

相关文章:

windows - Docker postgres 容器丢失了应该存储在卷中的数据

performance - 如何正确地 docker 化和连续集成20GB原始数据?

docker - 在gitlab CI管道中修改docker镜像

windows - Boot2Docker:无法创建目录:协议(protocol)错误

Go类型方法不等于实例方法

docker - 如果 RUN 在多阶段构建中失败,则使 Docker 构建停止

docker - 如何在 docker-compose 中传递参数?

go - 在golang中,如何从一个函数返回一个int类型的 slice 给另一个函数?

go - 如何结合 channel 和 WaitGroup 的工作?

docker - 如何在Dockerfile中使用自定义入口点在后台运行Docker容器