Docker explicitly violates the principles of the Twelve-Factor App. Docker apps don’t rely on any external environment. In fact, Docker demands that you store all config values, dependencies, everything inside of the container itself. Apps communicate with the rest of the world via ports and via Docker itself. The trade-off is that apps become a little bit bulkier (though not significantly), but the benefit is apps b…
No it doesn't. In fact, parameterised containers are a thing that many people encourage. This is where you specify configuration when you run the container instead of when you build it. This can done using arguments to the CMD, environment variables, config volumes, or using something like etcd.