我有檔案
碼頭工人-compose.yml
...
example:
build:
context: ./example
ports:
- 3300:3000
networks:
- backend
volumes:
- ../example/:/var/www
container_name: example
...
./example/Dockerfile
FROM node:16
WORKDIR /var/www
RUN npm install -g react-scripts
RUN npm install
EXPOSE 3000
CMD [ "npm", "start" ]
當我跑
docker-compose build
得到這個錯誤
...
npm ERR! path /var/www/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/var/www/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
但是如果我評論#RUN npm install,腳本會看到 package.json 和“npm start”作業,但我得到錯誤,因為沒有 node_modules
當“npm install”時,掛載檔案夾的內容在哪里?
uj5u.com熱心網友回復:
感謝David Maze,他為心靈提供了食物。
經過幾次決定,對我來說最好的事情是以下
碼頭工人-compose.yml
...
example:
build:
context: ./example
ports:
- 3300:3000
volumes:
- ./example/:/var/www
container_name: example
...
./example/Dockerfile
FROM node:16
WORKDIR /var/www
RUN npm install -g react-scripts
RUN chown -Rh node:node /var/www
USER node
EXPOSE 3000
CMD [ "sh", "-c", "npm install && npm run start" ]
該解決方案非常適合開發。用戶node將幫助您獲得主機<->訪客的權限
該檔案夾node_modules可以從主機訪問并同步主機<->來賓
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/407330.html
標籤:
