Настройка Java + svn + Eclipse + Tomcat, среда разработки с докере

Я только начал тестировать докер, чтобы узнать, помогает ли он в создании нашей среды разработки, которая состоит из

  • Jdk 1.6
  • Eclipse
  • RabbitVCS
  • Tomcat
  • Сервер MySQL

Наши настольные разработки - это в основном Ubuntu 16.04. У меня было бы затмение, RabbitVCS, установленное на хосте, а остальное в контейнере.

Если все будет хорошо, разработчики должны иметь возможность загружать изображение Docker. Запуск этого образа должен предоставить им JDK, Tomcat и сервер MySQL. Затем разработчики могут использовать RabbitVCS для проверки проектов.

Возможно ли это с помощью Docker?

Ответ 1

TL;DR

Невозможно выполнить запуск eclipse в ОС хоста и использовать JDK/JRE в контейнере, потому что затмение имеет зависимость от JRE. Точно так же вы не можете иметь tomcat в одном контейнере и JRE/JDK в другом контейнере, потому что tomcat нуждается в JRE для запуска.

Описание

У меня было бы затмение, RabbitVCS, установленное на хосте, а остальное в контейнере. Запуск этого образа должен дать им JDK, Tomcat и сервер MySQL

Вы пытаетесь использовать JDK, работающий на контейнере докеров (и Eclipse IDE, работающем на хосте os) для активной разработки? Если это так, это не выполнимо (возможно, вы можете выполнить удаленное отладки, но помните, что отладка сильно отличается от активной разработки). И это не намерение докера. При разработке разработчикам, возможно, потребуется установить JDK в свою машину. В вашем случае только разумная вещь для запуска из контейнера - это mysql, так как у вас нет активной разработки там.

Изменить: создать портативную среду разработки

В докерной зоне одним из возможных решений является eclipse + jdk + tomcat в одном и том же изображении докеров и монтирование X11-сокета в контейнер, чтобы вы могли открыть графический интерфейс eclipse, запущенный в контейнере, на вашу ОС хоста

Подробнее читайте здесь: https://blog.jessfraz.com/post/docker-containers-on-the-desktop/

Или просто прокатите Docker и перейдите на полномасштабную виртуальную машину, например virtualbox, вы можете найти предварительно созданные изображения с eclipse в нем (не уверен), или вы можете создать его после установки всех необходимых пакетов на базовом изображении и поделиться им среди ваших разработчиков.

Ответ 2

Да, это возможно.

Я бы рекомендовал использовать разные контейнеры для каждой службы (Mysql/Tomcat/JDK). Вы можете использовать docker-compose для соединения контейнеров вместе и автоматизации множества задач. Есть много изображений уже на dockerhub, которые вы можете использовать.

Вот простой пример того, как вы можете настроить свой собственный файл docker-compose.yml:

services:
    tomcat_service:
    #contains tomcat & jdk
        image: tomcat
        volumes:
            - /local/path:/path/in/docker
        links:
            - mysql_service
        depends_on:
            - mysql_service
        ports:
            - "80:80"
          # - other ports for debugging

    mysql_service:
        image: mysql
        volumes:
            #you should keep mysql data on the host, not in container
            - /local/path/data:/var/lib/mysql

Каждое изображение, используемое выше, будет автоматически загружено с dockerhub: tomcat, java, mysql

EDIT: jdk и tomcat будут лучше вместе в одном контейнере