No, my recommendation is to use NPMs standard setup unless you know what you’re doing. That’s the reason why I’m using the standard setup.
You don’t need step 3 if you connect the discourse container via websocket.
This is because
Are you sure that 172.17.0.2 is your db container? - In any case: you can skip this trouble by leaving NPM on its own network and connection discourse via web socket.