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:
- 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.
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>
- To access resources from within the container from your host, use the IP number of the Docker instance on your host.
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
The following services in your container should now be available from your host:
Service Connection Info User/Credential Description SSH Daemon ssh -X openeai@docker -p 42222 user: openeai
password: openeaiYou 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 Server docker:3306 user: admin
password: none (unset)MySQL supports the databases for the example applications in the sample enterprise. OpenLDAP Directory Server ldap://docker:389 user: cn=Manager,dc-any-openeai-enterprise, dc=org
password: secretOpenLDAP 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: noneActiveMQ 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: adminSakai 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: developeruPortal 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)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 &