【发布时间】:2020-06-16 10:37:47
【问题描述】:
我正在使用 flex 环境在自定义运行时上部署 node.js Web 应用程序。我在 Node.js 中调用 child_process 来打开 python3:
const spawn = require("child_process").spawn;
pythonProcess = spawn('python3');
本地运行良好,但部署到 GAE 时,出现如下错误:
Error: spawn python3 ENOENT
at Process.ChildProcess._handle.onexit (child_process.js:240)
at onErrorNT (internal/child_process.js:415)
at process._tickCallback (next_tick.js:63)
但是,当我运行 python2 时,它运行良好。
在做了一些研究和挖掘之后,我在stackoverflow上遇到了这个问题
How to install Python3 in Google Cloud Platform for a Node app
看来我必须通过 从 docker 文件构建自定义运行时 来允许多个运行时(类似的东西)。
我用 docker 文件尝试了无数的东西,例如:
# Trying to install python3
FROM ubuntu as stage0
WORKDIR /python/
RUN apt-get update || : && apt-get install --yes python3;
RUN apt-get install python3-pip -y
# My main node.js docker stuff
FROM gcr.io/google_appengine/nodejs
COPY . /app/
... etc
和
# From google app engine python runtime docker repo
FROM gcr.io/google-appengine/python
RUN virtualenv /env
ENV VIRTUAL_ENV /env
ENV PATH /env/bin:$PATH
ADD requirements.txt /app/requirements.txt
RUN pip install -r /app/requirements.txt
ADD . /app
# My main node.js docker stuff
FROM gcr.io/google_appengine/nodejs
COPY . /app/
... etc
这些都没有用。
这样做的正确方法是什么,我该怎么做?
谢谢。
【问题讨论】:
标签: python node.js docker google-app-engine runtime