sh: 1: nuxt: 尝试对接 Nuxt 应用程序时未找到

sh: 1: nuxt: not found when trying to dockerise the Nuxt app

sh: 1: nuxt: not found 我在尝试 运行 docker 容器时总是遇到这个错误。 它仅在我从本地安装了节点模块和 .nuxt 文件夹时才有效。一旦我删除它们,那个 docker 容器就会开始出现同样的错误。 这是我的 docker 文件:

FROM node:16.14
WORKDIR /app
ADD package.json ./
RUN npm install
ADD . .

这是我的 docker-compose.yml:

version: "3.9"
services:
  web:
    build: .
    restart: always
    container_name: myapp-nuxt
    volumes:
      - ".:/app"
    depends_on:
      - "server"
    environment:
      - NUXT_HOST=0.0.0.0
      - NUXT_PORT=3001
    network_mode: "host"
    command: npm run dev

PS - 我尝试了几乎所有的教程。他们的问题都一样。

volumes: 块完全隐藏了 Docker 文件所做的一切,并用来自您的主机的不同内容覆盖它。更具体地说,它隐藏了由 RUN npm install 生成的 node_modules 目录,并将其替换为该目录中主机上可能发生的任何内容。您不需要此 volumes: 块,您可以将其删除。

# volumes:      <-- remove this block:
#   - ".:/app"  <-- don't overwrite the application code in the image

(同时考虑删除不必要的 container_name: 选项,将固定的 environment:command: 设置移动到您的 Docker 文件中,而不是禁用 Docker与 network_mode: host 联网。您可以将 Compose 定义简化为 build: 行、restart: 策略、声明 depends_on: 和发布 ports:。)