Как я могу использовать codenvy для запуска нескольких опубликованных образов docker?

Я хотел бы использовать Codenvy в качестве среды разработки и тестирования для проекта с опубликованными образами Docker.

Вот упрощенная версия конфигурации docker-compose, которую я хотел бы воспроизвести на Codenvy.

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 сохраняет состояние моих контейнеров между выполнениями.

0
0
145
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот решение, которое я реализовал на данный момент. Мне любопытно узнать, есть ли лучший подход.

  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-ключ для каждого контейнера в рабочей области. Используя этот ключ, я могу передавать файлы между контейнерами.

Другие вопросы по теме