[使用Google Cloud Build,我如何运行一个执行docker和kubectrl命令的Makefile?

问题描述 投票:0回答:1

我收到了一个由许多Makefile构建的项目,这些项目运行许多docker命令。我想在Cloud Build上构建它。

[我知道Cloud Build可以本地处理Docker,但必须与现有的Makefile结构一起使用。

我尝试了make Custom Build step,但是由于缺少dockerkubectl,Cloud Build失败了。因此,我可以将它们添加到make Custom Build步骤的Dockerfile中,但这似乎是错误的,因为然后make运行Docker-in-Docker会导致问题-例如,gcloudkubectl权限和上下文丢失。

作为此类Makefile的一小部分,这是一个调用docker buildz and docker push`的目标。

build/myapp/deployer: ...

    docker build \
        --build-arg REGISTRY="$(REGISTRY)/myapp" \
        --tag "$(APP_DEPLOYER_IMAGE)" \
        -f deployer/Dockerfile \
        .

    docker push "$(APP_DEPLOYER_IMAGE)"
    @touch "$@"

如何在Cloud Build中运行这些Makefile?

docker makefile google-cloud-build docker-in-docker
1个回答
0
投票

要回答您的评论:“如何在Docker容器中运行Docker?”,您必须像运行程序一样看到自定义云构建器。您可以在Cloud Build中像这样使用它

- steps:
  - name: gcr.io/your-project/your-custom-builder
    entrypoint: "bash"
    args: 
      - "-c"
      - |
        Makefile
        <All the script lines that you want which use binaries installed in your custom builder>

在此处,定制的Cloud Builder运行命令,但结果存储在Cloud Build工作区中,而不是在定制的Cloud Builder容器中。

© www.soinside.com 2019 - 2024. All rights reserved.