Вот моя проблема:Docker сочинить - доступ к данным из контейнера в контейнер B
У меня есть контейнер (Node.js) и контейнер B (Nginx). В Dockerfile контейнера A я создаю несколько файлов из источников, поскольку они необходимы для запуска сервера в папку с именем build
. Я хочу получить доступ к этой папке из контейнера B для обслуживания статических файлов.
Цель состоит в том, чтобы иметь простой рабочий процесс, если бы вы могли просто клонировать репо с источниками и запускать docker-compose up --build
и все работает. В этом случае у хоста нет программного обеспечения, необходимого для сборки файла, поэтому сборка должна произойти внутри контейнера докеров.
Моя первая попытка, что почти работа заключалась в следующем:
version: "2"
services:
nginx:
volumes_from:
- node
node:
volumes:
- /code/build
Когда я первый построил докер сочинять строить & все, казалось, работало хорошо, контейнер создается из контейнера с файлов сборки внутри него и контейнер B может получить к ним доступ, как ожидалось.
Однако проблема возникает, когда источники обновляются. Когда это происходит, новые файлы сборки не заменяют старый в контейнере, потому что существующий контейнер, похоже, имеет приоритет. Поэтому после первого раза у меня всегда есть старые файлы для обоих контейнеров A и B.
Я исследовал способ заставить громкость воссоздавать с нуля каждый раз, когда я запускаю docker-compose build
, но ничего не нашел. Единственное, что я нашел, было бы использовать docker-compose stop && docker-compose rm
, но это кажется немного взломанным, чтобы делать это каждый раз, и, кроме того, это приводит к довольно длительному простоя по сравнению с заменой существующего контейнера новой версией на docker-compose up
.
Есть ли подходящее решение для достижения цели, которую я пытаюсь достичь?
Вы попробовали --build? В конечном итоге лучше всего попытаться отделить их, если это возможно. – ldg
Я пробовал 'build', а затем' up' и '--build up', и результат, похоже, тот же, старый контейнер хранится и его содержимое не переопределяется новыми файлами сборки – Mijamo