Не совсем понятно, Вы проксируете nginx'ом сайт
server_name site.query.ru;
на
proxy_pass http://site;
При этом я не вижу этого имени в правилах сборки docker-compose. Контейнеру надо или назначить имя site, или проксировать на контейнер с Angular2, но его название опять же не объявляется. К тому же, в контейнере query expose'ится порт 8081, а proxy_pass делается на 80.
И еще я не вижу объявление локальной сети докера. Попробуйте сделать примерно так:
networks:
mynetwork:
driver: bridge
ipam:
driver: default
config:
- subnet: 10.10.10.0/24
ip_range: 10.10.0.0/24
gateway: 10.10.10.1
services:
# Контейнер с проксирующим nginx
nginx:
container_name: nginx
build: images/nginx
networks:
- mynetwork
# Контейнер с сайтом
site:
container_name: site
build: images/site
networks:
- mynetwork
Порты и volumes намеренно не пишу, добавите сами.
И совсем не понятно зачем Вам два nginx? Какова суть проксирования? (или может я просто не вкурил конфиг)