Cloud Container Builder, ZIP не поддерживает временные метки до 1980 года
Я пытаюсь следующий урок.
Автоматическое развертывание без сервера с облачными репозиториями и контейнером
Но я получил ошибку ниже.
$ gcloud container builds submit --config deploy.yaml .
BUILD
Already have image (with digest): gcr.io/cloud-builders/gcloud
ERROR: (gcloud.beta.functions.deploy) Error creating a ZIP archive with the source code for directory .: ZIP does not support timestamps before 1980
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/gcloud" failed: exit status 1
Я сейчас пытаюсь решить это. Есть ли у вас какие-либо идеи? Мой gcloud - последняя версия.
$ gcloud -v
Google Cloud SDK 193.0.0
app-engine-go
app-engine-python 1.9.67
beta 2017.09.15
bq 2.0.30
core 2018.03.09
gsutil 4.28
Пример кода функции облака Google в руководстве.
#index.js
exports.f = function(req, res) {
res.send("hello, gcf!");
};
#deploy.yaml
steps:
- name: gcr.io/cloud-builders/gcloud
args:
- beta
- functions
- deploy
- --trigger-http
- --source=.
- --entry-point=f
- hello-gcf # Function name
#deploying without Cloud Container Builder is fine.
gcloud beta functions deploy --trigger-http --source=. --entry-point=f hello-gcf
2 ответа
Контейнер Builder тарсит вашу исходную папку. Может быть, что-то в вашем. каталог имеет поврежденные даты? Вот почему перемещение в исходную папку исправляет это.
Хотя я не знаю причину, я нашел обходной путь.
(1) make src directory and move index.js into it.
├── deploy.yaml
└── src
└── index.js
(2) deploy via Cloud Container Builder.
$ gcloud container builds submit --config deploy.yaml ./src
Я столкнулся с той же проблемой сейчас. Я не мог решить это, но, по крайней мере, я узнал, откуда это. Когда вы локально отправляете свою сборку, там создается и загружается tar. В этом архиве папки создаются 01.01.1970:
16777221 8683238 drwxr-xr-x 8 user staff 0 256 "Jan 1 01:00:00 1970" "Jan 1 01:00:00 1970" "May 15 12:42:04 2019" "Jan 1 01:00:00 1970" 4096 0 0 test
Эта проблема возникает только локально. Если у вас есть триггер сборки github, он работает
Недавно я столкнулся с той же проблемой, используя Cloud Build (преемник Container Builder).
Помогло добавление шага для перечисления всех файлов / папок в среде Cloud Build (каталог по умолчанию /workspace
) определить проблемный файл / папку. Вы можете сделать это, переопределив gcloud
точка входа контейнера для выполнения ls
команда.
steps
- name: gcr.io/cloud-builders/gcloud
entrypoint: "ls"
args: ["-la", "/workspace"]