My question is not so much about how to deploy it. But just in case:
Option 1:
Create a profile of the dock which can be enforced always or once using MCXtoProfile
Option 2:
Have a dock plist and deploy it to: /System/Library/CoreServices/Dock.app/Contents/Resources/en.lproj/default.plist
Here's one such site that lets you create a dock:
http://errorfreeit.com.au/blog/2015/4/28/dock-master
In either, method you'd probably want to remove /Library/Preferences/com.apple.dockfixup.plist to remove other OS X apps that get left behind.
My question: what is the best way to go about it if in the future you wish to replace an app from the dock or you want to modify app (add/remove) on the dock for a user?
With either method it seems the dock is managed only that first time (assuming you create a profile set to ONCE only). If I go with a profile, it's supposed to mange it just once if that's the option I choose. But in my testing I saw that after a restart it does impact new users AND existing users as well which I wouldn't want obviously. I like this option because profiles are enforced and aren't modifying anything under /System/ in case something gets modified in an future update like it did in the OS X 10.10.3 update.
What do others prefer to do? I'm trying to some future proofing if you will. Don't want to deploy something that ends up causing more issues if I try to make modifications in the future.
