如何使用Codenvy运行多个已发布的Docker映像?

时间:2018-09-13 19:14:48

标签: codenvy

我想将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 个答案:

答案 0 :(得分:0)

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

  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. 为我希望使用公共URL公开的容器显式创建一个“服务器”。

      "dspace": {
        "attributes": {
          "memoryLimitBytes": "2684354560"
        },
        "servers": {
          "dspace": {
            "properties": {},
            "protocol": "http",
            "port": "8080"
          }
        },
    
  3. 创建使用此多计算机映像的工作区

  4. 启动工作空间后,查看工作空间配置以确定服务的公共URL。

enter image description here

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