Я пытался запустить команду gcloud compute scp
, используя триггер Google Cloud Build. Я хочу, чтобы мой код был скопирован в соответствующие каталоги на перечисленных серверах.
Однако, довольно странно, что когда я делаю gcloud compute scp * username@instance-name:/home/directory --zone=us-central1-a --recurse
в Cloud Shell, он работает.
Но когда я записать эквивалент в файл cloudbuild.yaml
, он завершится ошибкой: *: No such file or directory
.
Вот содержимое моего cloudbuild.yaml
:
- name: 'gcr.io/cloud-builders/gcloud'
args: ['compute' , 'scp' , '*', 'username@instance-name:/home/directory' , '--zone=us-central1-a', '--recurse']
Я также пытался использовать remote-builder , который также завершается с ошибкой:
ssh: connect to host <ip_address> port 22: Connection timed out
lost connection
ERROR: (gcloud.compute.scp) [/usr/bin/scp] exited with return code [1].
Я также пробовал другие комбинации, заменив источник *
на /workspace/*
, ./*
et c. но никто из них не работал. Выполнение с исходным кодом как /workspace/
работает, но при этом копируется весь каталог workspace
вместо содержимого каталога, как требуется.
Я также попытался запустить следующий набор, но это тоже не удалось.
cloudbuild.yaml
:
- name: 'ubuntu'
args: ['bash', '-c' , 'scp', '*', 'username@instance-name:/home/directory']
Ошибка:
Already have image: ubuntu
scp: command not found
Опять же, все, что мне нужно, это использовать Cloud Build для копирования моего кода на виртуальные машины. Пожалуйста, помогите.