首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker命令找不到package.json

Docker命令找不到package.json
EN

Stack Overflow用户
提问于 2022-06-16 18:43:25
回答 1查看 518关注 0票数 0

docker/my-project-node/文件夹中的Dockerfile中,有RUN npm i --legacy-peer-deps --only=production --no-optional

我想在本地运行码头建设,看看一切是否正常。

当我运行docker build -t my-project-image .时,我得到这个npm错误:

代码语言:javascript
复制
#9 0.913 npm ERR! code ENOENT
#9 0.913 npm ERR! syscall open
#9 0.914 npm ERR! path /app/package.json
#9 0.914 npm ERR! errno -2
#9 0.916 npm ERR! enoent ENOENT: no such file or directory, open '/app/package.json'
#9 0.917 npm ERR! enoent This is related to npm not being able to find a file.
#9 0.917 npm ERR! enoent

Dockerfile:

代码语言:javascript
复制
FROM node:16-alpine

RUN apk update && apk add --no-cache ca-certificates bash

WORKDIR '/app'

COPY . .

RUN npm i --legacy-peer-deps --only=production --no-optional

CMD ["npm","run", "start:prod"] 

我的码头文件怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-17 08:01:42

您将错误的build context传递给码头。

build context是Docker开始工作的目录,所有COPY命令都从这个路径查找文件。

有两种方法可以正确地指定这一点:

  • 从项目的根运行命令,如果不在根上,则显式指定Dockerfile路径。docker build -t my-web-app -f docker/my-project-node/Dockerfile

  • 命令中,指定您想要的根。docker build -t my-web-app ../.. (您的根目录位于两个文件夹上)

最后,请看docker-compose。所有这些烦人的停靠命令都可以很好地用如下所示的坞-撰写文件来表示:

代码语言:javascript
复制
# docker-compose.yaml placed at root of the project
version: '3'
services:
  web:
    container_name: "example1"
    build:
      context: .
      dockerfile: docker/my-project-node/Dockerfile

    ports:
      - "8000:8000"

创建文件后,只需运行docker-compose up -d以创建和运行容器,并运行docker-compose down以关闭和删除容器:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72650546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档