Best pattern to deploy one code base (project) to multiple clients

I have one project which is deployed to multiple clients. Every client has different configuration passed by environment variables to docker container with my built project.

What’s best way to configure this as CI/CD pipeline? What I want to achieve is scenario like this:

  1. release is created
  2. release is build, tested
  3. deployed to staging
  4. after tests on staging I can choose - deploy to all clients or deploy to specific client; all environment variables must be substituted according to target