0

我想使用 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 工作区在执行之间保持了我的容器状态。

4

1 回答 1

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。

在此处输入图像描述

  1. Codenvy 在工作区中的每个容器上设置一个通用 SSH 密钥。使用此密钥,我可以在容器之间传输文件。
于 2018-09-13T19:14:48.150 回答