docker-coding-style
Never use "latest" images.
Always check and look for most popular solution.
Idally also check docker hub stats to see which version is most used.
Also which image from what provider is most used.
If possible keep all docker files in directory docker/ of this project.
docker compose should be under location docker/docker-compose.yml
If any image will require mounting directory to preserve it's state - like databases - then create directory using name of the software in the image, for example for any mysql image just use directory
docker/mysql/ to contain anything about that image
use docker/mysql/data/ for state. And keep all configuration files in main docker/mysql directory if files mounted one by one. If there is a need to mount entire directory with config files into given image then create directory docker/mysql/config/ and mount it into image.