Cloud Container Builder,ZIP不支持1980年之前的时间戳
Cloud Container Builder, ZIP does not support timestamps before 1980
-
google-app-engine
-
google-cloud-platform
-
google-container-registry
-
google-cloud-functions
-
google-container-builder
我正在尝试以下教程。
Automatic serverless deployments with Cloud Source Repositories and Container Builder
但是我得到以下错误。
$ 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
虽然我不知道原因,但我找到了解决方法。
(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
Container Builder 将您的源文件夹打包。也许你的 .目录有损坏的日期?这就是将它移动到源文件夹修复它的原因。
我 运行 现在遇到同样的问题。我无法解决它,但至少我发现了它的来源。
当您在本地提交您的构建时,会创建一个 tar 并上传到一个存储桶。在此 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 环境中的所有 files/folders(默认目录是 /workspace
),以确定有问题的 file/folder。您可以通过覆盖 gcloud
容器的入口点来执行 ls
命令来完成此操作。
steps
- name: gcr.io/cloud-builders/gcloud
entrypoint: "ls"
args: ["-la", "/workspace"]
google-app-engine
google-cloud-platform
google-container-registry
google-cloud-functions
google-container-builder
我正在尝试以下教程。
Automatic serverless deployments with Cloud Source Repositories and Container Builder
但是我得到以下错误。
$ 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
虽然我不知道原因,但我找到了解决方法。
(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
Container Builder 将您的源文件夹打包。也许你的 .目录有损坏的日期?这就是将它移动到源文件夹修复它的原因。
我 运行 现在遇到同样的问题。我无法解决它,但至少我发现了它的来源。 当您在本地提交您的构建时,会创建一个 tar 并上传到一个存储桶。在此 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 环境中的所有 files/folders(默认目录是 /workspace
),以确定有问题的 file/folder。您可以通过覆盖 gcloud
容器的入口点来执行 ls
命令来完成此操作。
steps
- name: gcr.io/cloud-builders/gcloud
entrypoint: "ls"
args: ["-la", "/workspace"]