docker-compose-read-compose-file completes *.yaml and *.yml filenames but not directories, which must be manually typed if the desired compose file is not in the initial input.I use a custom function to get around this, which may warrant consideration as a feature in docker.el.
(defun docker-compose-read-compose-file (prompt &optional initial-input _history)
"Wrapper around `read-file-name' forwarding PROMPT and INITIAL-INPUT."
(read-file-name prompt nil nil t initial-input
(lambda (file-name)
(or (file-directory-p file-name)
(string-match ".*\\.yml\\|.*\\.yaml" file-name)))))