为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 Pulumi 构建 dockerfile

无法使用 Pulumi 构建 dockerfile

Go
开心每一天1111 2022-08-24 16:10:03
我正在尝试使用Pulumi构建一个docker文件。我有以下普鲁米代码func main() {    pulumi.Run(func(ctx *pulumi.Context) error {        imageName := "server"        _, err = docker.NewImage(ctx, imageName, &docker.ImageArgs{            ImageName: pulumi.Sprintf("gcr.io/gadic-310112/%s:latest", imageName),            SkipPush: pulumi.Bool(true),            Build: &docker.DockerBuildArgs{                Dockerfile: pulumi.String("Dockerfile"),            },        })        if err != nil {            return err        }    }}但是,当我运行时,我收到以下错误:pulumi previewDiagnostics:  pulumi:pulumi:Stack (server-prod):    error: program failed: docker build -f Dockerfile . -t gcr.io/gadic-310112/server:latest failed with error: exit status 1    exit status 1    error: an unhandled error occurred: program exited with non-zero exit code: 1  docker:image:Image (server):    error: #1 [internal] load build definition from Dockerfile    #1 sha256:921a08a3c227abd8c3811effc689fa5319db237c32a4adf2b255007a51af9ef8    #1 transferring dockerfile: 2B 0.0s done    #1 DONE 0.0s    failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount052159980/Dockerfile: no such file or directory有趣的是,普鲁米似乎在引擎盖下奔跑。当我从我的终端运行它时,它成功了,没有任何错误。docker build -f Dockerfile . -t gcr.io/gadic-310112/server:latest似乎Pulumi可能使用的工作目录与调用它的地方不同的工作目录。这可能吗?是否还有其他事情可能正在发生?
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

您的 Pulumi 项目构建在您的目录中,而不是在您所在的文件夹中。infraPulumi.yaml


Pulumi 提供者需要知道使用 docker 构建上下文的路径(有关这些内容的更多信息,请单击此处)Dockerfile)


添加上下文应该可以解决此问题:


func main() {

    pulumi.Run(func(ctx *pulumi.Context) error {

        imageName := "server"

        _, err = docker.NewImage(ctx, imageName, &docker.ImageArgs{

            ImageName: pulumi.Sprintf("gcr.io/gadic-310112/%s:latest", imageName),

            SkipPush: pulumi.Bool(true),

            Build: &docker.DockerBuildArgs{

                Dockerfile: pulumi.String("Dockerfile"),

                Context: "../", # note I'm adding the context here

            },

        })

        if err != nil {

            return err

        }


    }

}


查看完整回答
反对 回复 2022-08-24
  • 1 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号