应用程序引擎忽略符号链接到目录

时间:2017-12-12 15:53:23

标签: linux google-app-engine

我正在使用自定义灵活环境创建一个在Google App Engine上运行的应用。这个应用程序使用几个(相对)符号链接,指向项目中的其他目录。但是在部署应用程序时,这些符号链接会被忽略。

在构建和部署应用之前,似乎gcloud工具将源上下文(即我项目中的所有文件)发送到Google容器构建器:

$ gcloud --project=my-project --verbosity=info app deploy
(...)
Beginning deployment of service [default]...
Building and pushing image for service [default]
INFO: Uploading [/tmp/tmpZ4Jha_/src.tgz] to [eu.gcr.io/my-project/appengine/default.20171212t160803:latest]
Started cloud build [some-uid].

如果我提取.tgz文件的内容,我可以看到项目中的所有文件和目录都在那里。除了指向目录的符号链接(虽然包含符号链接到文件)。因此源上下文缺少目录的所有符号链接。

不使用符号链接不是一个选项,所以有人知道如何将符号链接包含在源上下文发送给谷歌的目录中吗?

虽然我认为不相关,但以下是app.yaml

的内容
env: flex
runtime: custom

runtime_config:
  document_root: docroot

manual_scaling:
  instances: 1

resources:
  cpu: 2
  memory_gb: 2
  disk_size_gb: 10

1 个答案:

答案 0 :(得分:0)

我通过从临时目录部署python云功能并使用tar(在Mac上)将文件包含在符号链接目录中的方法来解决此问题:

  tar hc --exclude='__pycache__' {name} | tar x -C {tmpdirname}