IMHO, not worth the trouble. Since every Docker container has an isolated filesystem it tends to be easier to just use the default system directories for things.
If you’re planning to move the entire /usr/local/apache2 tree then you’d probably have to recompile the server, which is a pretty big endeavor, and it seems like you’re drawing an artificial distinction between services installed via OS package managers and things installed from source.
“Run containers as non-root” is generally considered a best practice. There are layers to this, though. It’s probably a good idea to have the server process itself owned by root and not writeable by the user actually running it; in a setup where the config files will probably be injected from outside or built into the container, a similar setup there makes sense. Blindly making all of /usr/local/apache2 owned by some non-root user is probably not a huge improvement in your overall security posture.
Our all containers running as non-root now and we are facing issue with some of these like apache http etc. Is it advisable to built our own apache http image using debian base image?
This way we would have more control over it and can achieve what we want.