当前位置: 首页 > 知识库问答 >
问题:

如何使我的Docker映像可用于Google Cloud Container Builder触发的构建

鲜于岳
2023-03-14

我已经构建了一个简单docker映像来将Hugo(SSG)编译成一个静态博客。我正在尝试构建以下管道:

>

  • 将代码提交到GitHub

    这个问题涉及步骤2.1

    下面是我的docker图像:

    FROM alpine:latest
    
    LABEL description="Docker container for building static websites with Hugo as part of a Google Cloud Container Builder pipeline"
    LABEL maintainer="me"
    LABEL version="1.0"
    
    #Install Hugo static website generator from sources
    ARG HUGO_VERSION=0.36.1
    ADD https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz /tmp
    RUN tar -xf /tmp/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz -C /tmp \
    && mkdir -p /usr/local/sbin \
    && mv /tmp/hugo /usr/local/sbin/hugo \
    && rm -rf /tmp/hugo_${HUGO_VERSION}_linux_amd64 \
    && rm -rf /tmp/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz \
    && rm -rf /tmp/LICENSE.md \
    && rm -rf /tmp/README.md
    
    RUN apk add --update git \
    && apk upgrade \
    && apk add --no-cache ca-certificates
    
    
    VOLUME /src
    VOLUME /build
    
    WORKDIR /src
    
    CMD "hugo"
    

    我已经在gcr.io中发布了这个映像,我还在本地测试了它,如果这样调用它,它就可以正常工作:sudo docker run--name“test”-p-v$(pwd):/src hugo-docker。如果在文件夹中调用,它将编译在其中找到的hugo结构,并生成包含最终站点的./public文件夹。

    steps:
    - name: gcr.io/thematic-lol-000000/hugo-builder:latest
      args: ["-P", "-v .:/src"]   
    - name: gcr.io/cloud-builders/gsutil
      args: ["-m", "rsync", "-r", "-c", "-d", "./public", "gs://gcp.jubi.blog"]
    
    Step #0: container_linux.go:262: starting container process caused "exec: \"-P\": executable file not found in $PATH"
    Step #0: docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "exec: \"-P\": executable file not found in $PATH".
    

    我还希望能够在本地(通过.作为工作目录)或在GCP云容器构建器中使用该文件

  • 共有1个答案

    柯乐池
    2023-03-14

    从这里开始,当您试图运行一个docker命令时,您将需要在cloudbuild.yaml文件中将它告知构建器。然后将参数作为参数传递:

    steps:
    - name: gcr.io/cloud-builders/docker
      args: ['run', 'gcr.io/$PROJECT_ID//hugo-builder:latest', '-P', '-v .:/src']
    
     类似资料:
    • 问题内容: 我正在尝试 使用 官方链接中提到 的API 构建 docker镜像 。 但是我无法获得文件中的内容:示例请求: 有几件事使我感到困惑, 1)在哪里提到 Dockerfile 的 路径 ? 2)“归档文件必须在归档文件的根目录中包含一个构建指令文件,通常称为Dockerfile。” 来自docker docs的此声明,这里的困惑 是存档的根 是 什么 ? 3) 构建图像的详细命令 是什么

    • 我是Docker和Jenkins的新手,我正在尝试创建一个Jenkins管道来构建Docker的形象。我在尝试构建时遇到了问题,并不断收到此错误: /var/jenkins_home/workspace/Docker-Pipeline@tmp/耐用-a11b32f8/脚本。sh:第1行:docker:未找到命令 我已经在虚拟机上安装了ubuntu 我正在做和他完全一样的事情,但总是失败。

    • Quarkus文档解释了如何使用Maven构建docker映像。但我在利用Gradle和Kotlin。我正在想办法做这些步骤: 首先,我想我想要一个包含gradle而不是maven的图像(Quay.io似乎没有)。然后,我必须考虑我还需要复制什么(而不是pom.xml),也许???其次,我相信这个图像也包含了GraalVM。所以我不确定我能在那里做些什么。 我必须使用Maven吗?我真的真的不想。

    • 问题内容: 通过使用詹金斯,我创建了一个“管道”类型的项目。然后将“ SCM管道”设置为。您可以检查我的GitHub存储库: 我想使用Jenkins管道构建docker映像。这是Jenkinsfile: Dockerfile也非常简单: 当我运行项目时。我收到以下错误: 这是完整的控制台输出 我检查了工作区: 测试 目录中什么都没有,但是Jenkinsfile和Dockerfile都在 test

    • 通过使用jenkins,我创建了一个“管道”类型的项目。我设置了“来自SCM的管道”来获取< code>Jenkinsfile。你可以查看我的GitHub库: 我想使用 Jenkins 管道来构建一个 docker 映像。以下是 Jenkinsfile: Dockerfile文件也非常简单: 当我运行这个项目时。我得到以下错误: 这是完整的控制台输出 我检查了工作区: 测试目录中没有任何内容,但J