NPM要素:没有这样的文件或目录,在kubernetes作业运行期间打开'/usr/src/app/package.json

编程入门 行业动态 更新时间:2024-10-07 06:40:37

NPM要素:没有这样的文件或目录,在kubernetes<a href=https://www.elefans.com/category/jswz/34/1771149.html style=作业运行期间打开'/usr/src/app/package.json"/>

NPM要素:没有这样的文件或目录,在kubernetes作业运行期间打开'/usr/src/app/package.json

我有具有自定义package-lock.json,package.json的node(node:10)Dockerfile,因此,使用此dockerfile我需要创建一个dockerimage,然后我要运行kubernetes job(kind:job)作为一项任务意味着如果任务结束,您的Pod将被杀死,并且还需要将/ usr / src / app /和/ usr / src / app / node_modules的输出安装到我的kubernetes主机路径中以提供静态内容。

Dockerfile:-

FROM node:10
WORKDIR /usr/src/app/
#COPY package*.json /usr/src/app/
COPY . /usr/src/app/
RUN npm install

Dockerfile目录中已经可用的文件:-

Dockerfile  README.md  codegen.yml  package-lock.json  package.json  public  src  tsconfig.json

Kubernetes作业文件:-

apiVersion: batch/v1
kind: Job
metadata:
  name: workspace-forntend
spec:
  template:
    metadata:
      name: workspace-forntend
    spec:
      containers:
      - name: workspace-forntend
        image: node:10 (dummy path for public post) 
        imagePullPolicy: IfNotPresent
        command: ["/bin/bash","-c"]
        args: ["npm run build"]
        volumeMounts:
          - name: mount-1
            mountPath: /usr/src/app/
          - name: mount-2
            mountPath: /usr/src/app/node_modules
      volumes:
          - name: mount-1
            hostPath:
              path: /root/mount-1
              type: DirectoryOrCreate
          - name: mount-2
            hostPath:
               path: /root/mount-2
               type: DirectoryOrCreate
      restartPolicy: Never

但出现错误:-

npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /usr/src/app/package.json
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/usr/src/app/package.json'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent 

npm ERR! A complete log of this run can be found in:

注意:-所有权限(777),路径/ usr / src / app(pwd),用户(root)均完整。

回答如下:

由于您已将应用程序代码COPY放入Docker映像,因此您无需在作业规范中单独安装它。从作业规范中删除volumes:volumeMounts:部分。您还需要更改image:指向从该Dockerfile构建的映像,并推送到某些Docker注册表。

Kubernetes特别不适用于实时开发环境。 hostPath卷实际上是普通Kubernetes存储系统周围的逃生通道,而不是维护存储或外部内容的常规方法。除了将应用程序代码放入显示的图像中,您还需要手动将应用程序复制到集群中的每个节点。这破坏了将为您提供的常规滚动升级序列部署,并从根本上抵消了您从Kubernetes获得的任何优势。

这几乎看起来像您正在尝试使用Kubernetes作为构建环境。为此设置一个专用的或云托管的工具可能会更好地为您服务。如果您要使用本地源代码树并在其上放置npm run build,则使用本地Node安装比此处显示的要容易得多。

更多推荐

NPM要素:没有这样的文件或目录,在kubernetes作业运行期间打开'/usr/src/app/package.json

本文发布于:2024-05-07 05:48:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754598.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:作业   要素   文件   目录   kubernetes

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!