[jbosstools-issues] [JBoss JIRA] (JBDS-3258) Docker Tooling (Advanced Integration)
Burr Sutter (JIRA)
issues at jboss.org
Thu Feb 19 14:07:50 EST 2015
[ https://issues.jboss.org/browse/JBDS-3258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13042157#comment-13042157 ]
Burr Sutter commented on JBDS-3258:
-----------------------------------
It is certainly possible that we can merge these jiras and my learning has grown over the last couple of months - I will attempt to "rewrite" them via this comment:
0) assumes boot2docker has been dowloaded and installed - if the end-user has not yet downloaded and installed boot2docker, then we assume the end-user has remote Docker Daemon and will need to point to a URL for the Docker Daemon running on another machine on the network. I do not believe the Docker Daemon has much in the way of security but we will need to consider that when talking to a remote docker
1) boot2docker init - handled by boot2docker - end-user will be responsible for running this themselves outside of the IDE
2) boot2docker up - handled by boot2docker - end-user will be responsible for running this themselves outside of the IDE
3) boot2docker ip run by the end-user manually, outside of JBDS. The end-user is responsible for making note of this ip address has he/she will need it to run tests of his/her web apps. boot2docker currently provides a start.sh that works on Mac and Windows that handles "init", "up" and "ip" and on Windows it also issues a "ssh" so that the end-user is dropped into the boot2docker-vm shell. Basically this shell (command prompt) will be open in the background IF the end-user is running a local copy of Docker (via boot2docker).
4) I, the Java developer, need to browse a docker registry (either DockerHub or private registry), identify the image that I wish to have local and download (docker pull) for that image+tag.
5) docker ps - allows me to see all the currently running containers
6) docker rm - allows me to remove (may require a stop/kill) a particular running container
7) docker images - allows me to see all the available (on the particular docker daemon) docker images
8) docker rmi - allows me to remove a particular image (provides an error if there is still a container associated with the image)
9) docker pull - allows me to pull a docker image from the previously designated docker registry (local, public, private)
10) docker run -it -p 8080:8080 -p 9990:9990 --link mysqldb:mydatabaseserver centos/wildfly
assumes we have a way to let the end-user see the logs
11) docker run -p 8080:8080 -p 9990:9990 --link mysqldb:mydatabaseserver centos/wildfly -d
12) if run with -d, then we need to support "docker logs container_id"
13) I can then deploy my .war or .ear to the running app server
14) I can restart the running app server in debug mode and run the debugger
15) I can undeploy and redeploy my .war or .ear
16) I can stop/restart the running, embedded app server
17) I can then commit (docker commit)
18) then I can publish my changes (docker push) to the previously configured registrry
19) also, I can use "docker build" with a previously created Dockerfile and "docker push" its output
> Docker Tooling (Advanced Integration)
> -------------------------------------
>
> Key: JBDS-3258
> URL: https://issues.jboss.org/browse/JBDS-3258
> Project: Developer Studio (JBoss Developer Studio)
> Issue Type: Feature Request
> Components: openshift, requirements
> Reporter: Burr Sutter
> Assignee: Xavier Coulon
>
> Once significant delta between the "basic" and advanced scenarios is that here I wish to custom craft my own docker images instead of using an existing one - where my custom crafted image includes my .war or .ear.
> In addition to the basic integrations of pull, run, stop, commit and push
> boot2docker init
> boot2docker up
> boot2docker down
> boot2docker ip
> docker run -d
> docker ps
> docker rm
> docker rmi
> docker build
> End-user steps:
> 0) assumes boot2docker has been dowloaded and installed
> 1) boot2docker init : required to to insure boot2docker-vm is properly initialized
> 2) boot2docker up : starts the VirtualBox boot2docker-vm
> 3) boot2docker ip : returns the IP address - this will be vital when it comes to testing - it would need to be integrated with our Run - As on Docker capability.
> 4) docker run -i -t -p 80:8080 jboss/wildfly -d : the -d means detached, I may need to run N containers simultaneously
> 5) docker ps : allows me to see all my currently running containers
> 6) docker rm : allows me to kill a currently running container
> 7) docker rmi : allows me to remove a local image
> 8) docker build : assumes that I have crafted a Dockerfile - this will create the local image - with my .war or .ear embedded
> 9) docker run : this new created image
> The docker build scenario can be triggered via a Maven plugin
> The docker build scenario can also be triggered via an Eclipse menu option (like a Maven install)
> We need to figure out the file-system layout so that the Dockerfile and the maven project are all nicely checked into git/svn. So that Jenkins can pick up this repository and perform an automated "docker build" (post Maven install) and then run all the appropriate unit, integration and functional tests.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)
More information about the jbosstools-issues
mailing list