【问题标题】:Concourse build docker-image copying from git repoConcourse 从 git repo 构建 docker-image 复制
【发布时间】:2023-03-15 04:15:01
【问题描述】:

我正在尝试使用 Concourse 管道来提取 git 存储库,然后从 git 存储库中的 dockerfile 构建/推送 Docker 映像。 dockerfile 中有一个 COPY 命令,用于将文件从 repo 复制到映像中。通常我会安装一个卷以便能够在构建时复制这些文件,但在 Concourse 中找不到这样做的方法。这是我正在尝试的:

# pipeline.yml
resources:  
  - name: git-repo
    type: git
    source:
      uri: <the-git-url>
      branch: master
      private_key: ((source-git-ssh-key))
  - name: my-image
    type: docker-image
    source:
      repository: gcr.io/path_to_image
      username: _json_key
      password: ((gcp-credential))

jobs:
  ...
      - get: git-repo
        trigger: true
      - put: my-image
        params:
          build: git-repo/compose



# dockerfile located at git-repo/compose/Dockerfile
FROM ...
...
# git-repo/scripts/run-script.sh
COPY scripts/run-script.sh /
...

如何在构建时将文件 git-repo/scripts/run-script.sh 复制到我的映像中?谢谢。

【问题讨论】:

    标签: docker dockerfile concourse concourse-git-resource concourse-pipeline


    【解决方案1】:

    我不熟悉 Concourse,但作为 Docker 的一项规则,您只能将 COPY 包含在您的构建上下文中的内容添加到您的映像中(也就是说,它们位于构建目录或构建的子目录中目录)。从你的配置文件...

          - put: my-image
            params:
              build: git-repo/compose
    
    

    看起来您的构建上下文是git-repo/compose。由于您要包含的脚本在该目录 (git-repo/scripts/run-script.sh) 的外部,因此在构建过程中将不可用。

    解决方案是重新组织您的git-repo。例如,您可以:

    • scripts/ 目录移动到您的compose/ 目录中。
    • Dockerfile 移出compose/ 并移入git-repo 主目录。

    【讨论】:

    • 感谢您的信息 - 我发现有一个解决方案无需重新组织回购(这是我无法控制的)。我会尽快发布的
    【解决方案2】:

    找到了方法。假定构建上下文是基本目录(例如,示例中的 git-repo/compose)。结果,我想要复制的文件在我可用的目录之外。如果您的 Dockerfile 不在根目录中,如果您仍想访问其余相同/更高级别的文件,则需要在 dockerfile 参数中指定它。工作示例:

      - put: my-image
        params:
          build: git-repo
          dockerfile: git-repo/compose/Dockerfile
    

    【讨论】:

    • 这几乎就是我的建议(将主 git-repo 目录作为构建上下文)。不用移动 Dockerfile 就好了,否则这是相同的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多