Ошибка разрешения пути к файлу dockerfile: укажите правильный путь к файлу Dockerfile в контексте сборки с помощью --dockerfile - PullRequest
0 голосов
/ 26 марта 2019
apiVersion: v1
kind: Pod
metadata:
  name: kaniko
spec:
  containers:
  - name: kaniko
    image: gcr.io/kaniko-project/executor:latest
    args:
          - "--context=dir:///workspace"
          - "--dockerfile=/workspace/Dockerfile"
          - "--destination=gcr.io/kubernetsjenkins/jenkinsondoc:latest"
    volumeMounts:
      - name: kaniko-secret
        mountPath: /secret
      - name: context
        mountPath: /workspace
    env:
      - name: GOOGLE_APPLICATION_CREDENTIALS
        value: /secret/kaniko-secret.json
  restartPolicy: Never
  volumes:
    - name: kaniko-secret
      secret:
        secretName: kaniko-secret
    - name: context
      hostPath:
        path: /home/sabadsulla/kanikodir

Я запускаю kaniko в модуле kubernetes для создания образа докера и отправки в GCR.

Когда я использую облачное хранилище Google для CONTEXT_PATH, оно работает нормально, Но мне нужно использовать Local_directory (что означает использование общих томов модулей) в качестве CONTEXT_PATH выдает ошибку

"Error: error resolving dockerfile path: please provide a valid path to a Dockerfile within the build context with --dockerfile

Использование:

I tried with args "--context=/workspace" , "--context=dir://workspace" , it gives the same error

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

папка выглядит как

На хосте:

/home/sabadsulla/kanikodir/Dockerfile

Когда он превращается в PV / PVC, в контейнере pod

/workspace/Dockerfile

Затем для kanino executor, если мы сопоставим контекст с workspace, dockerfile будет связан с контекстом Dockerfile, поэтому

--context=/workspace
--dockerfile=Dockerfile
0 голосов
/ 31 марта 2019

с использованием контейнера kaniko и объема, смонтированного как постоянное требование объема.
Пожалуйста, попробуйте и используйте "- dockerfile = . / Dockerfile"

      containers:
      - name: kaniko
        image: gcr.io/kaniko-project/executor:latest
        args: ["--dockerfile=./Dockerfile",
               "--context=/workspace/",
               "--destination=gcr.io/kubernetsjenkins/jenkinsondoc:latest"]
        volumeMounts:
          - name: kaniko-secret
            mountPath: /secret
          - name: context
            mountPath: /workspace/

Использование значений по умолчанию:
--dockerfile string -Path к создаваемому докер-файлу. (по умолчанию "Dockerfile")
--context string -Path к контексту сборки файла Dockerfile. (по умолчанию "/ рабочая область /")

Даже это одно утверждение работает:
args: ["--destination=gcr.io/kubernetsjenkins/jenkinsondoc:latest"]
Надеюсь, это поможет. Не могли бы вы проверить это и поделиться с результатами?

...