Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes吊舱无法部署;docker映像丢失/错位文件?_Docker_Npm_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

Kubernetes吊舱无法部署;docker映像丢失/错位文件?

Kubernetes吊舱无法部署;docker映像丢失/错位文件?,docker,npm,kubernetes,google-kubernetes-engine,Docker,Npm,Kubernetes,Google Kubernetes Engine,我正试图通过谷歌云平台了解库伯内特斯。我有一个基于Vue的小应用程序,在本地使用以下Dockerfile和dockercompose.yml 在当地建设和实施这个项目非常有效。但是,当使用kompose up创建部署/svc/等时,容器无法正确构建。最终,它以一个崩溃的循环结束 检查日志表明问题在于npm找不到/opt/eyeball/package.json或/opt/eyeball/package lock.json。我很困惑,因为当我构建并推送集群最终要拉下来的映像时,这不是一个问题——这

我正试图通过谷歌云平台了解库伯内特斯。我有一个基于Vue的小应用程序,在本地使用以下
Dockerfile
dockercompose.yml

在当地建设和实施这个项目非常有效。但是,当使用
kompose up
创建部署/svc/等时,容器无法正确构建。最终,它以一个崩溃的循环结束

检查日志表明问题在于
npm
找不到
/opt/eyeball/package.json
/opt/eyeball/package lock.json
。我很困惑,因为当我构建并推送集群最终要拉下来的映像时,这不是一个问题——这些文件就在您希望它们基于我的
Dockerfile
的地方。知道为什么会这样吗

Dockerfile

docker-compose.yml


您需要删除
docker compose.yml
文件中的
volumes:


docker compose.yml中的
volumes:
块指示docker获取本地目录的内容并将其装载到容器中,这将隐藏您在
Dockerfile
中添加的所有内容。使用Kompose部署时,会将其转换为Kubernetes指令,但由于Kubernetes环境没有本地开发环境,这会导致部署的容器失败。

如果删除
docker compose.yml中的
卷:
块,会发生什么情况?这会用主机系统上的内容覆盖
Dockerfile
中安装的所有内容,我猜Kubernetes部署不会这样做。我还将删除自定义的
入口点:
行,除非您知道部署规范有类似的内容。这就成功了,非常感谢。关于
入口点
你也是对的;需要将其更改为
命令
。如果你想把这个作为一个答案,我会把它标记为接受。
FROM node:8-alpine
RUN apk --no-cache --update add gzip
RUN mkdir -p /opt/eyeball
ADD ./package.json /opt/eyeball
ADD ./package-lock.json /opt/eyeball
WORKDIR /opt/eyeball
RUN npm install
ADD . /opt/eyeball
version: '3'

networks:
  default:
    external:
      name: overmind

services:
  eyeball:
    image: registry.gitlab.com/souldeux/eyeball:latest
    environment:
      - HOST=0.0.0.0
    ports:
      - "8080:8080"
    volumes:
      - ./:/opt/eyeball
    entrypoint: "npm run dev"