我使用docker for windows创建了一个图像并在本地部署它,但是我收到一个错误,指出找不到某个文件。这可能是构建的一个问题,所以我想我会看到容器的文件来解决这个问题并避免任何未来的问题。
我尝试使用
在docker上运行powershelldocker run -it node-web-app powershell
但是我收到了错误
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from
daemon: OCI runtime create failed: container_linux.go:348: starting
container process caused "exec: \"powershell\": executable file not found in
$PATH": unknown.
任何人都有这方面的经验,可以指出我正确的方向吗?
我的码头文件:
# Create container with node and npm preinstalled
FROM node:latest
# Create app directory
WORKDIR /app
# Install app dependencies
COPY package*.json ./
RUN npm install --only=production
# Bundle app source
COPY . .
# Bind to port 8080
EXPOSE 8080
# Run the server
CMD [ "npm", "run", "start-prod" ]
答案 0 :(得分:2)
您的dockerfile
表示您已根据node:latest
制作了图片。
现在,如果您前往码头工具中心,https://hub.docker.com/_/node/,您会看到node:latest
图片的详细信息。
这会转到https://github.com/nodejs/docker-node/blob/9023f588717d236a92d91a8483ff0582484c22d1/9/Dockerfile。
在此dockerfile
中,您会看到它是从buildpack-deps:jessie
构建的。
基本上这是一个debian
图像,这意味着它不会有PowerShell。
因此,@ fly2matrix指出错误非常清楚地表明容器内的powershell
变量中没有名为PATH
的可执行文件。
答案 1 :(得分:1)
此错误表示您的容器中没有 Powershell 可执行文件。
我假设您的基本映像是Linux而不是Windows。
查找Dockerfile的FROM语句。
请您分享您的Dockerfile以确定真正的问题吗?