App Engine会忽略指向目录的符号链接

Wes*_*den 6 linux google-app-engine

我正在创建一个使用自定义Flex环境在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].
Run Code Online (Sandbox Code Playgroud)

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

不使用符号链接不是一种选择,那么有人知道如何在源上下文中将符号链接包括到发送给google的目录吗?

尽管我认为这无关紧要,但这是其中的内容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
Run Code Online (Sandbox Code Playgroud)

Ste*_*der 5

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

  tar hc --exclude='__pycache__' {name} | tar x -C {tmpdirname}
Run Code Online (Sandbox Code Playgroud)