Как я могу использовать 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 сохраняет состояние моих контейнеров между выполнениями.
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" },
Явно создайте "сервер" для контейнера, который я хочу открыть с помощью публичного URL.
"dspace": { "attributes": { "memoryLimitBytes": "2684354560" }, "servers": { "dspace": { "properties": {}, "protocol": "http", "port": "8080" } },
Создайте рабочее пространство, которое использует этот образ с несколькими машинами
- После запуска рабочей области просмотрите конфигурацию рабочей области, чтобы определить общедоступный URL-адрес для службы.
- Codenvy устанавливает общий ключ SSH для каждого контейнера в рабочей области. Используя этот ключ, я могу передавать файлы между контейнерами.