Best practices: deploy application logic in container vs with config maps

Hi everyone,
Software engineer here. After having used Docker for one year and being in the process of learning Kubernetes, I have have a question that is bugging me: until now I always created Docker images which contained the application logic (say Java) to deploy the application within a container. In Kubernetes I can do the same thing by using a more generic container that has only what is needed to run an application and deploy the application logic with a config map. That provides many advantages like having to deal with much less docker images, using only official containers if possible and not having to deal with the added complexity of maintaining the custom container secure. I also learn though that there are no golden hammers in this profession, so I’m eager to know from you fellow professionals what are the best practices for this matter, included when to choose for a solution in spite of the other.

Thank you in advance!
Tristano

Cluster information:

Kubernetes version: any
Cloud being used: any
Installation method: any
Host OS: any

10+ chars up