Как настроить Docker для deployment-а?
У меня следующая схема.
В репозитории проект в корне лежит Dockerfile, который умеет собирать как прод так и дев версию контейнера.
Для каждого сервиса отдельно в гите свои репозитории. Например у nginx в репе Dockerfile, в котором по сути одна команда - скопировать конфиг. 
Redis у меня работает с конфигами по дефолту, так что для него репы нет.
Так же в каждой репе лежит конфиг для Drone, который при отправке коммитов запускает сборку, тестирование и последующий деплой на прод сервер. 
Деплоем контейнеров на сервере у меня сейчас занимается Rancher. Но в ближайшее время планирую перейти на Docker Swarm. 
Конфиги сборок лежат в гите, кроме параметров. 
Параметры для Symfony я передаю через environment при старте контейнеров.
Параметры для сборки зашифрованы в .drone.sec файле. Но в версии 0.5 они будут лежать сразу на сервере.
Docker-compose для прода я не использую, через него поднимается окружение исключительно для дев версии.
Прокидывать папки с хостовой машины не рекомендуется, поэтому для персистентных данных нужно создавать volume и прокидывать их.
При данной схеме на сервер вообще не захожу. Сделал пуш, код протестировался и задеплоился. 
Примеры моих конфигов: Dockerfile, drone.yml
Ещё к вышесказанному можно перейти на GitLab и запускать скрипты развертывания как GitLab CI задачи. Также можно использовать GitLab Container Registry, но это выходит за скоуп вашего вопроса.