Accenture/adop-cartridge-java

Enhancement: App deployment should be done via image, not file copy

deors opened this issue · 2 comments

deors commented

Currently the Pet Clinic reference pipeline relies on existing environments and deployment based on file copy to webapps directory in Tomcat. While this model works, it would be much nicer (and also more extensible to other runtime platforms) if we adopt an image-based process:

  1. The app is compiled and packaged.
  2. A new image is created, based on Tomcat image (or WildFly or Liberty or whatever the runtime is), with our app package deployed.
  3. The image is stored (Nexus, private registry, Docker Hub - TBD)
  4. Deployment consists on spawning a new container based on the just built image.
    This, if done jointly with issue #7, would be a more representative and robust pipeline to be exemplar to other projects.

Yes, I agree. The main problem is around #3 in your list really - ideally it'd be stored within the Core, however the version of Nexus we have doesn't take Docker images (although the homepage would lead you to believe it could). We do have a PR for a Docker Registry however I think it should probably end up as a platform extension.

As @RobertNorthard said, this is opened up now ADOP has a Docker registry (Accenture/adop-docker-compose#123)!