You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@metron.apache.org by GitBox <gi...@apache.org> on 2019/09/04 23:43:14 UTC

[GitHub] [metron] tigerquoll commented on issue #1501: Metron-2246 rpm-docker - minimise use of bind mounts due to performance

tigerquoll commented on issue #1501: Metron-2246 rpm-docker - minimise use of bind mounts due to performance
URL: https://github.com/apache/metron/pull/1501#issuecomment-528135292
 
 
   @ottobackwards 
   First some clarification:  The old docker build process mounted the entire project directory inside the docker file as a bind share, and utilised the project subdirectories for various purposes.
   
   The new process moves away from this by:
   
   1. Building in the rpm build source data directories (SPEC and SOURCES) directly into the image rather than using BIND share with the associated IO penalty.
   2. Having the rpm build working directories (BUILD and BUILDROOT), as simply runtime ephemeral directories inside the docker image, again skipping the IO penalty of bind shares.
   3. Having the rpm build output directories (RPMS and SRPMS) as simply runtime ephemeral directories inside the docker image as well.  RPMLINT is run on the rpms in these output directories as one of the last steps in the build process.  Running RPMlint on a bind share was a big IO penalty.
   4. A new last step which actually used to be run by maven. Copying files from RPMS/SRPMS directories to the project "**target**" directory.  The "**target**" directory is now the only shared bind directory used to move data from the running docker image to the project build directory.  
   
   Pushing this last step inside the running docker image allows rpmlint to process the rpms while they are still sitting on the higher-performing in-docker filesystems, rather then while the RPMS are sitting on a shared bind directory.
   
   The readme was updated to show the new location that rpms are located once the docker image has finished running as it does this "move to target directory" step rather then the maven process;

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services