【问题标题】:quick start in google cloud build谷歌云构建快速入门
【发布时间】:2020-06-12 20:36:48
【问题描述】:

我运行了快速启动

https://cloud.google.com/cloud-build/docs/quickstart-build

在“查看构建详细信息”部分,我在任何地方都看不到 quickstart.sh 文件的输出。实际运行 quickstart.sh 文件的日志在哪里?

没有来自 quickstart.sh 的任何输出,我不确定如何记录 docker 中发生的事情,以便我可以修复在 docker 中构建的损坏的构建。

【问题讨论】:

    标签: google-cloud-platform google-cloud-build


    【解决方案1】:

    在本官方教程中,通过 Cloud Build 构建了一个 docker 容器,其中只有一个显示当前日期的可执行 bash 脚本。

    #!/bin/sh
    echo "Hello, world! The time is $(date)."
    

    这里是 Dockerfile:

    FROM alpine
    COPY quickstart.sh /
    CMD ["/quickstart.sh"]
    

    这意味着quickstart.sh永远不会在构建阶段执行,而只会在容器的执行阶段执行。

    要查看脚本的输出,您应该运行容器(在您的计算机上本地或通过 Cloud Shell):

    $ docker run gcr.io/[PROJECT-ID]/quickstart-image:latest
    Hello, world! The time is Sat Jun 13 05:10:41 UTC 2020.
    

    如果你想在容器的构建阶段执行脚本,你应该使用RUN 命令。

    例如,让我们在同一目录中创建第二个名为build.sh 的可执行脚本:

    #!/bin/sh
    echo "Hello, build at $(date)."
    

    然后,将其添加到Dockerfile 文件描述中:

    FROM alpine
    COPY quickstart.sh /
    COPY build.sh /
    RUN /build.sh
    CMD ["/quickstart.sh"]
    

    现在,我们可以构建一个新版本的容器镜像了:

    gcloud builds submit --tag gcr.io/[PROJECT-ID]/quickstart-image
    

    这一次,build.sh 的输出可以在 Cloud Build 控制台的详细输出日志中看到:

    当然,这里只是一个简单的例子,给你一个快速的答案。您可以检查所有其他可能的选项以编写正确且干净的Dockerfile。但它与 Cloud Build 并没有真正的联系。

    【讨论】:

    • ohhhh @Thierry Falvo,我把它倒过来了。我以为我要编译,在docker镜像中创建一个docker镜像。 (即有一些图像有 gradle 等在云端构建代码)。谢谢!这让事情变得更清楚了。
    猜你喜欢
    • 2018-11-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-02
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多