У меня есть рабочий образ докера, и я использую docker-compose с этими томами:
volumes:
- .:/usr/src/node-app
- /usr/src/node-app/node_modules/node-sass/
В первой строке задано, чтобы я мог локально изменять код, который появляется в работающем контейнере.Во второй строке предполагается, что исключено node-sass
.Кажется, это работает нормально на нескольких других проектах, но не над тем, над чем я сейчас работаю, и я не могу найти разницу.
Мой Dockerfile
делает COPY . .
при запуске, затем следует npm install
, но .dockerignore
содержит node_modules*
, и сразу после восстановления контейнер работает нормально.
Через некоторое время происходит сбой, потому что папка node-sass моей машины попадает в работающий контейнер, поэтому вместо требуемого Linux у нее есть двоичный файл Mac.Сначала я думал, что это происходит, когда я запускаю npm install
, но я просто сделал установку с произвольным новым пакетом, обновил файл JS, увидел перезагрузку моего сервера, и все по-прежнему работало.Я понятия не имею, почему двоичный файл будет перезаписан в более поздний момент времени, но это происходит каждый час или около того.