1. 主页
  2. 文档
  3. 魔方云用户操作指南
  4. 构建镜像
  5. 运行策略

运行策略

s2i-python 运行策略

s2i-python生成的容器映像按以下顺序之一执行您的项目,顺序为:

  • Gunicorn
    如果安装了Gunicorn WSGI HTTP服务器,则它将用于为您的应用程序提供服务。 可以通过在requirements.txt文件或setup.py文件的install_requires部分列出它来进行安装。

    如果您的存储库中存在一个名为wsgi.py的文件,它将用作您应用程序的入口点。 可以使用环境变量APP_MODULE覆盖它。 默认情况下,此文件存在于Django项目中。

    如果您的要求中同时包含Django和Gunicorn,则将使用Gunicorn自动提供Django项目。

  • Django development server
    如果您的要求中包含Django,但没有Gunicorn,则可以使用Django的开发网络服务器来服务您的应用程序。 但是,不建议在生产环境中使用此功能。
  • Python script
    当您提供用于运行应用程序的Python代码文件时,将使用该文件。 当您通过APP_FILE环境变量指定Python脚本的路径时,将使用它,如果存在,则默认为名为app.py的文件。 该脚本将传递给常规的Python解释器以启动您的应用程序。
  • Application script file
    这是执行应用程序的最通用方法。 当您通过APP_SCRIPT环境变量指定可执行脚本文件的路径时,将使用它,如果存在,则默认为名为app.sh的文件。 该脚本将直接执行以启动您的应用程序。

s2i-python 运行策略名词解释:
• requirements.txt
用pip安装的依赖项列表。

• setup.py
配置项目的各个方面,包括安装依赖项。对于大多数项目,只需使用requirements.txt或Pipfile就足够了。 将DISABLE_SETUP_PY_PROCESSING环境变量设置为true,以跳过对该文件的处理。

• APP_FILE
用于从Python脚本运行应用程序。 这应该是Python文件的路径(除非设置为null,否则默认为app.py),该路径将传递给Python解释器以启动应用程序。

• APP_MODULE
用于通过Gunicorn运行应用程序。此变量指定可调用的WSGI,其模式为MODULE_NAME:VARIABLE_NAME,其中MODULE_NAME是模块的全点缀路径,而VARIABLE_NAME则指代可在指定模块内调用的WSGI。 如果未指定,Gunicorn将寻找WSGI可调用的命名应用程序。
如果未提供APP_MODULE,则运行脚本将在您的项目中查找wsgi.py文件,并在存在的情况下使用它。
如果使用setup.py安装应用程序,则可以从此处读取MODULE_NAME部分。

s2i-nodejs 环境变量

要使用独立的S2I构建一个简单的nodejs-sample-app应用程序,然后使用Docker运行生成的镜像,请执行:

  • 对于基于CentOS的镜像
$ s2i build https://github.com/kubesphere/s2i-nodejs-container.git --context-dir=8/test/test-app/ kubespheredev/nodejs-8-centos7 nodejs-sample-app $ docker run -p 8080:8080 nodejs-sample-app
  • 对于基于RHEL的镜像。此镜像仅支持nodejs8版本
$ s2i build https://github.com/kubesphere/s2i-nodejs-container.git --context-dir=8/test/test-app/ rhscl/nodejs-8-rhel7 nodejs-sample-app $ docker run -p 8080:8080 nodejs-sample-app

访问应用程序:

$ curl 127.0.0.1:8080

环境变量

应用程序开发人员可以使用以下环境变量来配置此映像的运行时行为:

  • NODE_ENV
    NodeJS运行时模式(默认:“production”)
  • DEV_MODE
    设置为“ true”时,nodemon将用于在您工作时自动重新加载服务器(默认值:“ false”)。 将DEV_MODE设置为“ true”会将NODE_ENV默认值更改为“ development”(如果未明确设置)。
  • NPM_RUN
    选择在package.json文件的脚本部分中定义的备用/自定义运行时模式(默认值:npm run“ start”)。 这些用户定义的运行脚本在使用DEV_MODE时不可用。
  • HTTP_PROXY
    组装期间使用npm代理
  • HTTPS_PROXY
    组装期间使用npm代理
  • NPM_MIRROR
    在构建过程中使用自定义NPM注册表镜像来下载软件包。
  • YARN_ENABLED
    将此变量设置为非空值以使用“yarn install”获取依赖项。
  • YARN_ARGS
    “yarn install”参数

    定义一组环境变量的一种方法是将它们作为键值对包含在存储库的.s2i / environment文件中。

    示例:DATABASE_USER = sampleUser

  • 注意:定义自己的“ DEV_MODE
    以下package.json示例包含scripts.dev条目。 您可以在应用程序的package.json文件中定义自己的自定义NPM_RUN脚本。
  • 注意:设置日志记录输出的详细程度
    要在npm期间更改日志输出的级别,可以设置npm_config_loglevel环境变量。