Using Docker in development for Java EE applications

后端 未结 7 1170
北荒
北荒 2021-02-05 13:59

I will add 300 points as bounty

I have recently started to take a closer look at Docker and how I can use it for faster getting new member of t

7条回答
  •  轮回少年
    2021-02-05 14:47

    I've used Docker with Glassfish extensively, for a long time now and wrote a blog on the subject a while ago here.

    Its a great tool for JavaEE development.

    For your production image I prefer to bundle everything together, building off the static base image and layering in the new WAR. I like to use the CI server to do the work and have a CI configuration for production branches which will grab a base, layer in the release build, and then publish the artifact. Typically we manually deploy into production but if you really want to get fancy you can even automate that with the CI server deploying into a production environment and using proxy servers to ensure new sessions that come it get the updated version.

    In development I like to take the same approach when it comes time to locally running any that rely on the container (eg. Arquillian integration tests) prior to checking in code. That keeps the environment as close to production as possible which I think is important when it comes to testing. That's one big reason I am against approaches like testing with embedded containers but deploying to non-embedded ones. I've seen plenty of cases where a test will pass in the embedded environment and fail in the production/non-embedded one.

    During a develop/deploy/hand test cycle, prior to committing code, I think the approach of deploying into a container (which is part of a base image) is more cost effective in terms of speed of that dev. cycle vs. building in your WAR each time. It's also a better approach if your dev environment uses a tool like JRebel or XRebel where you can hot deploy your code and simply refresh your browser to see the changes.

提交回复
热议问题