我打算部署一个使用Streamlit编写的简单Web应用程序,例如:
app.py
import streamlit as st
st.title('Hello World!')
我可以在本地机器上运行此应用程序,只需在命令行中运行streamlit run app.py
。
然而,我不知道如何修改GCP的App Engine中的app.yaml文件以部署此应用程序。
有什么建议吗?
我打算部署一个使用Streamlit编写的简单Web应用程序,例如:
app.py
import streamlit as st
st.title('Hello World!')
我可以在本地机器上运行此应用程序,只需在命令行中运行streamlit run app.py
。
然而,我不知道如何修改GCP的App Engine中的app.yaml文件以部署此应用程序。
有什么建议吗?
您可以使用App Engine灵活环境,因为您可以指定自定义运行时。要遵循的步骤如下:
创建Dockerfile:
FROM python:3.7
EXPOSE 8080
WORKDIR /app
COPY requirements.txt ./requirements.txt
RUN pip3 install -r requirements.txt
COPY . .
CMD streamlit run app.py --server.port 8080
我已更新Dockerfile,因为App Engine flex要求服务器监听端口8080。
创建requirements.txt文件并包含所需的依赖项:
streamlit
创建 app.yaml 文件:
runtime: custom
env: flex
应用的 app.yaml 文件和 Dockerfile 必须在同一个文件夹中。上述 app.yaml 的设置非常基本,更多信息可以在文档中找到。
然后,要部署应用程序,您需要使用以下 gcloud 命令:gcloud app deploy
gcloud app deploy
中收到了一个错误: ERROR: (gcloud.app.deploy) Error Response: [4] 在处理任务/app-engine-flex/flex_await_healthy/flex_await_healthy>2022-11-29T07:55:05.850Z21335.wa.2时发生内部错误:您的部署未能在规定时间内变为健康状态,因此已回滚。如果您认为这是一个错误,请尝试调整“readiness_check”部分中的“app_start_timeout_sec”设置。 - Shrike