繁体   English   中英

使用 Python 运行时在 Google App Engine 中安装 Java

[英]Installing Java in Google App Engine with Python runtime

我是 Google App Engine 的新手。 我创建了一个带有 python 运行时的新项目,并使用 Flask 公开了一些 API 端点。 其中一种方法使用依赖于 Java (8+) 的 Python 库 (tabula-py)。 当我在本地运行时,一切正常,但是在部署到 gcloud 后失败了。 关于在 App Engine 中设置 Java 的任何提示? 我无法通过requirements.txt安装它

非常感谢!

问候, 阿比

GAE 在容器中运行您的应用程序,这些容器默认只有您在app.yaml指定的运行时。 但是,您可以使用 Python 和 Java 设置自定义运行时来运行您的应用程序。

为此,您必须使用GAE 灵活环境并在Dockerfile定义如下Dockerfile

### 1. Get Linux
FROM alpine:3.7

### 2. Get Java via the package manager
RUN apk update \
&& apk upgrade \
&& apk add --no-cache bash \
&& apk add --no-cache --virtual=build-dependencies unzip \
&& apk add --no-cache curl \
&& apk add --no-cache openjdk8-jre

### 3. Get Python, PIP

RUN apk add --no-cache python3 \
&& python3 -m ensurepip \
&& pip3 install --upgrade pip setuptools \
&& rm -r /usr/lib/python*/ensurepip && \
if [ ! -e /usr/bin/pip ]; then ln -s pip3 /usr/bin/pip ; fi && \
if [[ ! -e /usr/bin/python ]]; then ln -sf /usr/bin/python3 /usr/bin/python; fi && \
rm -r /root/.cache

ENV FLASK_APP main.py
ENV FLASK_RUN_HOST 0.0.0.0
ENV FLASK_RUN_PORT 8080
### Get Flask for the app
RUN pip install --trusted-host pypi.python.org flask

####
#### OPTIONAL : 4. SET JAVA_HOME environment variable, uncomment the line below if you need it

#ENV JAVA_HOME="/usr/lib/jvm/java-1.8-openjdk"

####

EXPOSE 8080
ADD main.py /
CMD ["flask", "run"]

我测试了自定义运行时,它对我有用,但我无法测试 tabula-py 库,因为出于某种原因,导入在我的环境(甚至本地)中失败。 但是,我相信它应该起作用。

作为参考,我的Dockerfile是基于这个答案中的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM