glot-run, 在 Docker 容器内运行代码的API

分享于 

3分钟阅读

GitHub

  繁體 雙語
API for running code inside docker containers
  • 源代码名称:glot-run
  • 源代码网址:http://www.github.com/prasmussen/glot-run
  • glot-run源代码文档
  • glot-run源代码下载
  • Git URL:
    git://www.github.com/prasmussen/glot-run.git
    Git Clone代码到本地:
    git clone http://www.github.com/prasmussen/glot-run
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/prasmussen/glot-run
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    glot运行

    Build Status

    概述

    运行glot为在 Docker 容器内运行代码提供一个 http api。 这个api在这里描述了

    运行

    上面的下载是一个标准的erlang版本,包含一个启动脚本。 要启动 glot,请在前台类型中运行: glot/bin/glot foreground

    环境变量

    glot运行从 环境变量 获取它的配置。 需要设置所有 vars,不提供默认值。

    变量名称允许的值示例说明
    API_ENVIRONMENT开发| 产品生产开发模式将允许自动编译已经更改文件
    API_HTTP_LISTEN_IP<ipv4地址>0.0.0.0监听 ip
    API_HTTP_LISTEN_PORT1-655358090监听端口
    DATA_PATH<filepath>/home/app/data/保存数据文件的路径( 用户。语言)
    LOG_PATH<filepath>/home/app/log/保存日志的路径
    BASE_URL<url>https://run.glot.io承载api的基本 url
    ADMIN_TOKEN<字符串>秘密用于访问/admin 端点的管理令牌
    DOCKER_API_URL<url>http://10.0.0.2: 2375个版本指向 Docker api的Url ( 请参见下面的Docker 配置部分)
    DOCKER_RUN_TIMEOUT<秒>15允许容器运行的最大秒数
    MAX_OUTPUT_SIZE<字节>100000运行的输出允许的最大字节数

    Api用户

    运行代码需要一个api令牌。 用户可以使用 /admin/users 端点创建。 有关详细信息,请参阅 api文档

    语言

    可以使用 /admin/languages 端点添加语言。 语言具有名称。版本和 Docker 映像的名称,在运行给定语言/版本的代码时将使用该名称。 有关详细信息,请参阅 api文档

    Docker 图像

    运行run请求glot运行时会从处理给定语言/版本的映像创建一个新的临时容器。 容器需要侦听在stdin上的json负载,并且必须将运行结果写入 stdout,因为json对象包含该属性: stdout。stderr和错误。一个应用程序是 glot-code-runner。 可以在这里找到示例图像

    容器负载

    有效载荷 {"files": [{"name":"main.py","content":"print(42)"}]} 发送到 /languages/python/latest 将导致这里负载发送到容器: {"language":"python","files": [{"name":"main.py","content":"print(42)"}]} 成功运行应该会从容器中产生这里响应: {"stdout":"42n","stderr":"","error":""}

    Docker 配置

    请参见 docker_server_config.md


    API  cod  DOC  Docker  DOCK  Contain  
    相关文章