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.
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.
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'
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
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.