Java Maven Project Docker Integration Tests

We have a big multi module maven project, wich uses cargo to start a tomcat with some wars, a plugin to insert sql data in a postgres database and then using cucumber we run the integration test suit.

I was reading a lot about Docker, and I could play around with it. So here my question,

  • GitLab CI: How to pull specific docker container for deployment
  • Running cucumber without starting starting rails for remote website testing
  • Trouble developing on mirrored, but separate, production environment
  • Copy from docker to host inside CI build
  • Jenkins - Cannot run program “docker”
  • docker commands not executed properly in TeamCity
  • Can Docker replace my integration test that uses cargo?

    What are the benefits?

    What about the performance in comparison with the deploy using cargo?

    Could a suite that starts containers with postgres and tomcat images improve the build time?

    Hope someone can help me here cause I’m pretty exited about docker!

  • what does VOLUME command do in Dockerfile?
  • Programmatically setting Flash security in Linux
  • How does docker-compose start container on login (ubuntu/systemd)
  • How to set an environment variable in a running docker container
  • Oracle database on VirtualBox VM or Docker?
  • VirtualBox and Nginx very slowly serving cached static JS and CSS files
  • One Solution collect form web for “Java Maven Project Docker Integration Tests”

    • Can Docker replace my integration test that uses cargo?

    Yes Continuous Integration Using docker. This jetty container may come in handy.

    • What about the performance in comparison with the deploy using cargo?

    The performance will be about the same maybe a little slower to start up, depending on what you are doing in the docker container. Docker is more about isolation and repeatability rather than performance. Its way more performant than a virtual machine but not more than cargo on native host.

    • Could a suite that starts containers with postgres and tomcat images improve the build time

    Maybe, depends on what you are doing currently. You could create a known state in your docker container and if you were previously manually creating that state then you may find the build to be faster.

    The real benifit of docker is that you can have a well known state in your postgress database and the tests always run against that known state. Further you do not have to have everyone in your team install postgress locally. The just need to install docker and then the rest will be automated. Please often use docker in conjunction with Vagrant so that even installing docker can scripted and automated.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.