Getting Started with the OpenEAI Sample Enterprise Docker Image

Background

New in 2015 is an OpenEAI Sample Enterprise Docker image that encapsulates all of the example implementations and integrations in one neat package. The reason behind this transition was to allow us to package the examples for only one platform (Linux) instead of three (Windows, Mac, Linux) and focus our efforts on updating existing examples and adding new ones.

Getting Docker

If you are new to docker, first download the Docker Tools and you can also read a docker Getting Started Guide for Mac, Windows, or Linux.

Getting the Docker Image

To download the current OpenEAI Examples docker from DockerHub run:

docker pull openeai/openeai-examples:2015a

Running the Container

Once you have the image, to run the OpenEAI Examples Container execute:

docker run -i -t -p 42222:22 -p 3306:3306 -p 389:389 -p 61616:61616 -p 8161:8161 -p 8080:8080 -p 8282:8282 openeai/openeai-examples:2015a /bin/bash

On Windows you may encounter the following error when attempting to run the container from the Windows MING64 shell:

Stephen@arch2 MINGW64 ~
$ docker run -i -t -p 42222:22 -p 3306:3306 -p 389:389 -p 61616:61616 -p 8161:8161 -p 8080:8080 -p 8282:8282 openeai/openeai-examples:2015a /bin/bash
cannot enable tty mode on non tty input

In this case, you can ssh to the Docker VM on your host and execute the pull and/or run commands there. For example:

Stephen@arch2 MINGW64 ~
$ docker-machine ssh default
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.2, build master : aba6192 - Thu Sep 10 20:58:17 UTC 2015
Docker version 1.8.2, build 0a8c2e3
docker@default:~$ docker run -i -t -p 42222:22 -p 3306:3306 -p 389:389 -p 61616:61616 -p 8161:8161 -p 8080:8080 -p 8282:
8282 openeai/openeai-examples:2015a /bin/bash

What next?

Once you start the OpenEAI Examples Docker container, all of the services required to access the OpenEAI Examples should be running. Remember the following:

  1. Only exit this root shell if you are ready to end your session working with the sample enterprise and reset all changes you've made to the original state of the image.
  2. If you want to save your current state of your sample enterprise back to the image or to a completely different image you can resume work with later, you can do that this this command:

    docker commit <container> <some_name>
  3. To access resources from within the container from your host, use the IP number of the Docker instance on your host.
  4. It can be helpful to create an /etc/hosts entry for the Docker instance on your host to allow you to address resources in containers with a convenient host name. For example:

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1       localhost
    255.255.255.255 broadcasthost
    ::1             localhost 
    192.168.99.100  docker
  5. The following services in your container should now be available from your host:

    ServiceConnection InfoUser/CredentialDescription
    SSH Daemonssh -X openeai@docker -p 42222user: openeai
    password: openeai
    You can interact with the OpenEAI Examples Docker container using ssh and sftp. If you run an Xwindows server on your host you can also send xterms and Java applications like the demo self service app, Apache Directory Studio, and Oxygen XML back to your host's desktop.
    MySQL Database Serverdocker:3306user: admin
    password: none (unset)
    MySQL supports the databases for the example applications in the sample enterprise.
    OpenLDAP Directory Serverldap://docker:389user: cn=Manager,dc-any-openeai-enterprise, dc=org
    password: secret
    OpenLDAP is the example directory server for the sample enterprise.
    ActiveMQ JMS Provider

    http://docker:8161/admin (Admin URL)

    tcp://docker:61616 (JMS Broker URI)

    user: admin
    password: none
    ActiveMQ is the message transport for all messages in the sample enterprise.
    Tomcat Application Server
    (Sakai LMS)
    http://docker:8080/portal (Sakai LMS)user: admin
    password: admin
    Sakai is an open source learning management system similar in function to Blackboard, D2L, Canvas, etc. The sample enterprise demonstrates provisioning users in Sakai as they are added to the ERP system.
    Tomcat Application Server (uPortal)http://docker:8080/uPortal (uPortal)user: developer
    password: developer
    uPortal is an open source portal framework used by a number of universities. The sample enterprise demonstrates a portlet for changing person/employee information in the ERP system and password synchronization.
    Tomcat Application Server
    (OpenEAI Toolkit Console)
       
  6. To get the most out of the OpenEAI Sample Enterprise Docker image, install an X windows server on your host like Xquartz for Mac OS X <https://support.apple.com/en-us/HT201341> or Xming for Windows <http://sourceforge.net/projects/xming/>. This will allow you to run the Self Service client application and other tools like the Oxygen XML editor and Apache Directory Studio that are included in the Docker image. Remember to ssh with the -X option to enable Xwindows tunneling or otherwise enable that in the SSH client you use to connect to the Docker container. Here are some examples of running Xwindows apps in the sample enterprise:

    openeai@d09a162c75ed:/opt/openeai/openeai-examples-2015a$ ./start.sh ScheduledSelfService
    openeai@d09a162c75ed:/opt/openeai/openeai-examples-2015a$ oxygen.sh &
    openeai@d09a162c75ed:/opt/openeai/openeai-examples-2015a$ ApacheDirectoryStudio &