![](/img/trans.png)
[英]Docker compose failed to build: COPY failed:, can't find package.json in the root directory
[英]Docker compose cant find package.json in path
我正在嘗試 dockerize 我的節點應用程序,但我似乎無法理解為什么它找不到 package.json 文件,因為 package.json 文件與 docker compose 和 dockerfile 位於同一路徑中。 這是文件夾結構:
下面是 dockerfile:
文件
FROM node:12
# RUN mkdir -p ./usr/src/app/
COPY . /usr/src/app/
WORKDIR /usr/src/app/
# ADD package.json /usr/src/app/package.json
COPY package*.json ./
RUN yarn
RUN yarn global add pm2
COPY . .
EXPOSE 3005
EXPOSE 9200
CMD yarn start:dev
和 docker compose 文件:
docker-compose.yml
version: "3.6"
services:
api:
image: node:12.13.0-alpine
container_name: cont
build:
context: .
dockerfile: Dockerfile
ports:
- 3005:3005
environment:
- JWT_TOKEN_SECRET=ajsonwebtokensecret
- MONGO_URI=mongodb://localhost:27017/em
- PORT=3005
- MAIL_USER=******
- MAIL_PASS=******
- FORGOT_PASS_EMAIL=noreply@em.com
- CLIENT_SIDE_URL=http://localhost:3001
- ELASTICSEARCH_URI=http://localhost:9200
volumes:
- .:/usr/src/app/
command: yarn start:dev
links:
- elasticsearch
depends_on:
- elasticsearch
networks:
- esnet
elasticsearch:
container_name: em-elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.0
volumes:
- esdata:/usr/share/elasticsearch/data
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- discovery.type=single-node
logging:
driver: none
ports:
- 9300:9300
- 9200:9200
networks:
- esnet
volumes:
esdata:
networks:
esnet:
當我嘗試運行docker compose up
此錯誤
續 | 紗線運行 v1.19.1
續 | 錯誤在“/”中找不到 package.json 文件
續 | info 訪問https://yarnpkg.com/en/docs/cli/run獲取有關此命令的文檔。
繼續以代碼 1 退出
我試過這個,但我試過的所有解決方案都不起作用。 有沒有人有解決方案?
相對路徑。 請注意,有效的 COPY 命令是COPY . .
COPY . .
. .
意思是“當前目錄”。 所以你需要的是:
COPY ./package*.json ./
您可以通過運行docker build -t scratch .
來簡化調試docker build -t scratch .
從等式中消除 docker-compose 。 始終將其降低到絕對最小的復制器以隔離確切的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.