, Что я здесь пропустил?

я есть несколько контейнеров для веб-приложения (nginx, gunicorn, postgres и узел для создания статических файлов из исходного кода и рендеринга на стороне сервера React). В Dockerfile для контейнера узла у меня есть два шага: сборка и запуск (Dockerfile.node). Он заканчивается двумя каталогами внутри контейнера:bundle_client - это статика для nginx иbundle_server - используется в самом контейнере узла для запуска экспресс-сервера.

Тогда мне нужно поделиться встроенной статической папкой (bundle_client) с контейнером nginx. Чтобы сделать это в соответствии с указанием docker-compose в моемdocker-compose.yml У меня есть следующие услуги (см. Полныйдокер-compose.yml):

node:
  volumes:
    - vnode:/usr/src

nginx:
  volumes:
    - vnode:/var/www/tg/static
  depends_on:
    - node

и объемы:

volumes:
  vnode:

Бегdocker-compose build завершается без ошибок. Бегdocker-compose up работает все нормально, и я могу открытьlocalhost:80 и есть nginx, gunicorn и node express SSR, все прекрасно работает, и я вижу веб-страницу, но все статические файлы возвращают 404 не найдена ошибка.

Если я проверю объемы сdocker volume ls Я вижу два недавно созданных тома с именемtg_vnode (что мы рассмотрим здесь) иtg_vdata (см. полный docker-compose.yml)

Если я иду в контейнер nginx сdocker run -ti -v /tmp:/tmp tg_node /bin/bash Я не вижу своегоwww/tg/static папка, которая должна сопоставить мои статические файлы с тома узла. Также я попытался создать пустой/var/www/tg/static папка с контейнером nginxDockerfile.nginx но он остается пустым.

Если я сопоставлюbundle_client папку с хост-машины вdocker-compose.yml вnginx.volumes раздел как- ./client/bundle_client:/var/www/tg/static все работает нормально, и я могу видеть все статические файлы, обслуживаемые nginx, в браузере.

Что я делаю неправильно и как заставить мой контейнер делиться встроенным статическим контентом с контейнером nginx?

PS: Я прочитал все документы, все проблемы с github и stackoverflow Q & As, и, как я понял, он должен работать, и нет никакой информации, что делать, когда это не так.

UPD: Результатdocker volume inspect vnode:

[
{
    "CreatedAt": "2018-05-18T12:24:38Z",
    "Driver": "local",
    "Labels": {
        "com.docker.compose.project": "tg",
        "com.docker.compose.version": "1.21.1",
        "com.docker.compose.volume": "vnode"
    },
    "Mountpoint": "/var/lib/docker/volumes/tg_vnode/_data",
    "Name": "tg_vnode",
    "Options": null,
    "Scope": "local"
}
]

файлы:Dockerfile.node, докер-compose.yml

Докер-файл Nginx:Dockerfile.nginx

UPD: Я создал упрощенный репо, чтобы воспроизвести вопрос:Сделки рЕПО (есть несколько предупреждений оnpm install неважно, он устанавливает и строит нормально). В конце концов, когда мы открываемlocalhost:80 мы видим пустую страницу и 404 сообщения для статических файлов (vendor.js а такжеapp.js) в Chrome dev tools но там должно быть сообщениеReact app: static loaded генерируется реагирующим скриптом.