The "-conf" argument should be all one needs, in order to tell bitcoin where to find its data directory and fully initialize. bitcoin reads the specified configuration file path, learns data directory location and other details, and initializes from that.
However, in testing, -conf-only configurations, where -datadir is specified inside bitcoin.conf, fails to used the desired data directory, instead falling back to the default ~/.bitcoin.