web-dev-qa-db-fra.com

Spécifiez DockerFile pour GCloud Build Soumettre

Je comprends gcloud utilise le dockerfile spécifié dans le répertoire racine de la source (.) comme dans la commande: gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image .

mais j'essaie de spécifier le dockerfile à utiliser pour construire l'image que je n'ai trouvé aucune ressource sur la façon de faire cela, je ne sais pas si cela est possible.

7
idrisadetunmbi

Le seul moyen de spécifier un dockerfile (c'est-à-dire autre que ./Dockerfile) serait de créer un cloudbuild.yaml par techtabu @. Cette configuration pourrait ensuite utiliser le constructeur docker et fournir le dockerfile spécifique, c'est-à-dire

steps:
- name: "gcr.io/cloud-builders/docker"
  args:
  - build
  - "--tag=gcr.io/$PROJECT_ID/quickstart-image"
  - "--file=./path/to/YourDockerFile"
  - .
...
images:
- "gcr.io/$PROJECT_ID/quickstart-image"

Si vous le souhaitez, vous pouvez également spécifier un nom alternatif que cloudbuild.yaml.

Les ./Dockerfile L'hypothèse est probablement pour faciliter la transition vers la construction de cloud.

Je vous recommande de passer à l'aide de cloudbuild.yaml Pour la flexibilité qu'il fournit.

1
DazWilkin

Je ne sais pas si vous pouvez spécifier DockerFile, mais vous pouvez utiliser cloudbuild.yaml déposer. Vérifiez GCloud Documentation . Si vous souhaitez renommer ce fichier, vous pouvez utiliser l'option config.

    gcloud builds submit --config cloudbuild.yaml .

Un échantillon cloudbuild.yaml Dossier ressemble à ceci,

steps:
- name: 'gcr.io/cloud-builders/docker'
  args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/quickstart-image', '.' ]
images:
- 'gcr.io/$PROJECT_ID/quickstart-image'
0
techtabu

Finalement, le piratage suivant fonctionne assez bien pour moi. Si vous avez par exemple Dockerfile.prod et Dockerfile.dev Utilisez ce qui suit pour construire ce dernier.

tar --exclude-vcs-ignores \  # sort-of .dockerignore support
    --transform='s|^\./Dockerfile.dev|./Dockerfile|' -zcf /tmp/togo.tgz . && \
            gcloud builds submit --tag=gcr.io/my-project/foo:latest /tmp/togo.tgz
0
Zaar Hai

Vous pouvez très facilement faire cela en substituant le . par ./path/to/YourDockerFile, la commande gcloud sera:

gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image ./path/to/YourDockerFile

Donc, vous n'avez pas à utiliser un cloudbuild.yaml pour ça.

0
Coco