我如何使用 Codenvy 运行 多个已发布的 Docker 图片?

How can I use Codenvy to run multiple published Docker Images?

我想使用 Codenvy 作为已发布 Docker 图片的项目的开发和测试环境。

这是我想在 Codenvy 上复制的 docker-compose 配置的简化版本。

services:
  dspacedb:
    image: dspace/dspace-postgres-pgcrypto
    volumes:
      - pgdata:/pgdata

  dspace:
    image: "dspace/dspace:dspace-6_x"
    ports:
      - 8080:8080
    volumes:
      - "assetstore:/dspace/assetstore"
      - "solr:/dspace/solr"
    depends_on:
      - dspacedb

根据我的测试,我无法为我的图像定义体积。幸运的是,Codenvy 工作区在执行之间保留我的容器状态。

这是我目前实施的解决方案。我很想知道是否有更好的方法。

  1. 创建一个包含所需图像的多机堆栈,并向 运行 添加一台额外的机器 (eclipse/ubuntu_jdk8) IDE。

    "recipe": {
      "type": "compose",
      "content": "services:\n dev-machine:\n  image: eclipse/ubuntu_jdk8\n dspacedb:\n  image: dspace/dspace-postgres-pgcrypto\n  mem_limit: 536870912\n dspace:\n  image: 'dspace/dspace:dspace-6_x'\n  mem_limit: 2147483648\n",
      "contentType": "application/x-yaml"
    },
    
  2. 为我希望使用 public URL.

    公开的容器显式创建一个 "server"
      "dspace": {
        "attributes": {
          "memoryLimitBytes": "2684354560"
        },
        "servers": {
          "dspace": {
            "properties": {},
            "protocol": "http",
            "port": "8080"
          }
        },
    
  3. 创建一个使用此多机映像的工作区

  4. 启动工作区后,查看工作区配置以确定 public URL 服务。

  1. Codenvy 在工作区中的每个容器上设置一个通用的 SSH 密钥。使用此密钥,我可以在容器之间传输文件。