While you can specify the startup order of a container on IoT Edge, the runtime will not wait for the module to be up or running before starting the next. Azure IoT Edge doesn't offer any functionality for your scenario.
A way around this would be to write the main container to check if the other two are done running. Possible ways to achieve this:
- Send a Direct Method from the main container to the init containers, and have them respond with a certain code when done.
- Send a message to the main container from the init containers when they finish the job.
- The containers could communicate with each other over HTTP do achieve the same.