具有 github 上下文的 Kubernetes 上的 Kaniko

Kaniko on Kubernetes with github context

有这个例子如何使用 git 和 kaniko 图像构建:

apiVersion: v1
kind: Pod
metadata:
  name: kaniko
spec:
#  automountServiceAccountToken: false
  containers:
    - name: kaniko
      image: gcr.io/kaniko-project/executor:latest
      args: [ "--dockerfile=kaniko/dockerfile/Dockerfile",
              "--context=git://github.com/scriptcamp/kubernetes-kaniko",`enter code here`

我尝试将我的 git 项目与 docker 文件一起使用,文件不在 git 项目的根目录中,并且还指定了 git 分支。

如果 Kaniko 设置可以包含在“真实”项目中,将会有所帮助。不可能??

编辑:

此处:--docker文件=kaniko/dockerfile/Dockerfile Kaniko docker 构建可以找到Dockerfile。但是构建似乎无法找到同一目录(或以下)中的其他文件,Dockerfile 构建试图复制到正在构建的图像。

如果 Dockerfile 和 Dockerfile 指向的其他文件都位于 gitbub 存储库的根目录中,则此方法有效。

编辑 2:

好的。如果 [kube/restapi/docker/] docker-compose 使用的 Dockerfile 如下所示:

FROM openjdk:11

ARG JAR_FILE=./app.jar
COPY ${JAR_FILE} app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

然后,如果我想在 Kubernetes 上使用 Kaniko 构建这个 Dockerfile,我必须从我的项目根目录(和 github 存储库)添加路径,如下所示:

FROM openjdk:11

COPY kube/restapi/docker/app.jar app.jar

ENTRYPOINT ["java","-jar","/app.jar"]

-- 我很高兴能够在 docker-compose 设置和 Kubernetes 上的 Kaniko 中使用相同的 Dockerfile。

希望有人能找到“解决”这个问题的方法。

https://github.com/GoogleContainerTools/kaniko/issues/1064

spec.containers.args:

  1. give "--context=git://github.com/...(git repo 的根目录)
  2. give "--context-sub-path=path/to/setup/folder/"(从项目的根目录开始/ git集线器回购根)
  3. 给出“--dockerfile=Dockerfile”(位于context-sub-path)
  4. 给出“--destination=...”-可选