简体   繁体   中英

Cloudbuild.yaml command with nested quotes

I am trying to run the following command found at http://blog.wrouesnel.com/articles/Totally%20static%20Go%20builds/ :

CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' .

The two inner layers of quotes are tripping me up. How to deal with this in a cloudbuild.yaml file?

Escaping quotes don't seem to work:

steps:
- name: 'gcr.io/cloud-builders/go'
  args: ['build', '-o', 'main', '-ldflags', "'-extldflags \"-static\"'", '.']
  env:
  - 'GOOS=linux'

Well, to quote ' within ' -quoted strings, use '' as per YAML specification:

http://yaml.org/spec/current.html#id2534365

eg 'here''s to a toast!'

For the above args, it would be:

['build', '-o', 'main', '-ldflags', '''-extldflags "-static"''', '.']

Whether or not the command works within Cloud Builder is beyond the scope of this question.

Update:

There is no need for such quotes. See comment in Github here: https://github.com/GoogleCloudPlatform/cloud-builders/issues/146#issuecomment-337890587

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM