Specify Dockerfile for gcloud build submit

10/10/2019

I understand gcloud uses the Dockerfile specified in the root directory of the source (.) as in the command: gcloud builds submit --tag gcr.io/[PROJECT_ID]/quickstart-image .

but I am trying to specify the Dockerfile to use to build the image which I have not found any resource on how to do that, I don't know if that is possible.

-- idrisadetunmbi
docker
gcloud
google-cloud-build
kubernetes

3 Answers

10/10/2019

I am not sure if you can specify Dockerfile, but you can use cloudbuild.yaml file. Check gcloud documentation. If you want to rename this file, you can use config option.

    gcloud builds submit --config cloudbuild.yaml .

A sample cloudbuild.yaml file look like this,

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

10/10/2019

The only way to specify a Dockerfile (i.e. other than ./Dockerfile) would be to create a cloudbuild.yaml per techtabu@. This config could then use the docker builder and provide the specific Dockerfile, i.e.:

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"

If you wish, you also get to specify an alternative name than cloudbuild.yaml.

The ./Dockerfile assumption is presumably to ease the transition to Cloud Build.

I recommend you switch to using cloudbuild.yaml for the flexibility it provides.

-- DazWilkin
Source: StackOverflow

4/1/2020

You can very easily do this by substituting the . by ./path/to/YourDockerFile, so the gcloud command will be:

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

So you don't have to use a cloudbuild.yaml for this.

-- Coco
Source: StackOverflow