Docker and WildFly Part 1 – Deployment via Volumes and Docker and WildFly Part 2 – Deployment over Management API shows two approaches of how JBoss Tools can be configured to run any application on WildFly server running as a Docker container.
The blogs provide detailed setup and the underlying background. This Tech Tip will provide a quick summary of how to deploy a Java EE 7 application to WildFly and Docker from Eclipse.
Lets get started!
Configure Docker
- Configure Docker on your machine using Docker Machine.
- Find the IP address as:
123docker-machine ip/etc/hosts
as:
123192.168.99.101 dockerhost
Deployment to WildFly Container using Docker Volumes
- Create a folder that will be mounted as volume in the WildFly Docker container. In this case, the folder is
/Users/arungupta/tmp/deployments
.WildFly Docker container can be started as:
123docker run -it -p 8080:8080 -v /Users/arungupta/tmp/deployments:/opt/jboss/wildfly/standalone/deployments/:rw jboss/wildflyrw
ensures that the Docker container can write to it. - Create a new server adapter:
- Assign or create a WildFly 8.x runtime:
Changed properties are highlighted.
- Setup the server properties as:
Changed properties are highlighted. The two properties on the left are automatically propagated from the previous dialog. Additional two properties on the right side are required to disable to keep deployment scanners in sync with the server.
- Specify a custom deployment folder on Deployment tab of Server Editor:
- Right-click on the newly created server adapter and click “Start”.
Status quickly changes to “Started, Synchronized” as shown.
- Open up any Java EE 7 project (for example javaee7-simple-sample), right-click, Run on Server, and chose this server. The project runs and displays the page:
Deployment to WildFly Container using Management API
- Run WildFly management image as:
123docker run -it -p 8080:8080 -p 9990:9990 arungupta/wildfly-managementVolume mapping is not required in this case, instead additional management port is exposed.
- Configure a remote server controlled by management operations:
Changed properties are highlighted.
- Take the defaults:
- Set up server properties by specifying the admin credentials (Admin#70365). Note, you need to delete the existing password and use this instead:
- Right-click on the newly created server adapter and click “Start”.Status quickly changes to “Started, Synchronized” as shown.
- Open up any Java EE 7 project (for example javaee7-simple-sample), right-click, Run on Server, and chose this server. The project runs and displays the page:
Enjoy!
This blog showed how how to deploy a Java EE 7 application to WildFly and Docker from Eclipse.
Is there any other way that you deploy to WildFly Docker container from Eclipse?
i tried creating the container just like you, using volume on the deployments dir and the container crashes
]): java.lang.IllegalArgumentException: WFLYDS0024: /opt/jboss/wildfly/standalone/deployments is not writable
yes.. i added :rw .
If you run on MacOSX or Linux, what about checking the access permissions of the docker daemon on the mounted volume ?
A few more information such as the OS and the values passed into the wizards would help.
FYI. I had the same issue today on OSX: WFLYDS0024: /opt/jboss/wildfly/standalone/deployments
Problem was that I mapped to my host /tmp/deployments directory which is not part of the VirtualBox Docker instance Shared folders. The Shared Folders does include /Users so mapping using -v /Users/pdv/Downloads/deployments:/opt/jboss/wildfly/standalone/deployments/:rw solved this issue.
Does this approach works with Apache Tomcat too?
You’ll have to figure out equivalent Tomcat directories etc.
Running on Ubuntu 15.04 , I’m facing the error :
]): java.lang.IllegalArgumentException: WFLYDS0024: /opt/jboss/wildfly/standalone/deployments is not writable
A Git issue is open here https://github.com/redhat-developer/docker-java/issues/4#issuecomment-148553560
Great article!!! I really was searching for this, I like a lot the development over Docker and I wanna make easy the development via Eclipse. I will implement the post and I will give the feedback soon.
Great article Arun