gpt4 book ai didi

node.js - 尝试通过dockerize一个node.js文件但不断出错

转载 作者:行者123 更新时间:2023-12-03 08:48:26 25 4
gpt4 key购买 nike

FROM node:7
WORKDIR ~/Desktop/CS612
COPY package.json ~/Desktop/CS612
RUN npm install
COPY . ~/Desktop/CS612
CMD node server.js
EXPOSE 3000

好吧,我已经切换了它,并且能够做到这一点:
Step 5/7 : COPY . ~/Desktop/CS612/
---> 885080c48872
Step 6/7 : CMD node server.js
---> Running in 7ffbaeec889f
---> 61654068c183
Removing intermediate container 7ffbaeec889f
Step 7/7 : EXPOSE 3000
---> Running in 6862095ac871
---> abb84902c53b
Removing intermediate container 6862095ac871
Successfully built abb84902c53b
Successfully tagged restaurants:latest
Danas-MacBook-Air:CS612 DanaCarlin$ docker run restaurants
module.js:538
throw err;
^

Error: Cannot find module '/~/Desktop/CS612/server.js'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Function.Module.runMain (module.js:676:10)
at startup (bootstrap_node.js:187:16)
at bootstrap_node.js:608:3

为什么现在出现此错误?毫无意义,那绝对是一个保存请求和响应的文件

最佳答案

WORKDIR ~/Desktop/CS612
WORKDIR指定容器内的工作目录,而不是Danas-MacBook-Air上的目录。主机工作目录更接近Docker在MacBook Air上调用的构建上下文。

另外, Docker需要在容器中使用绝对路径。您正在容器/~/Desktop/CS612中创建一个目录,完成构建后,所有后续的Dockerfile命令都将在该目录中运行。可能不是您想要的。

tl; dr放弃Dockerfile中的相对路径(~/)。示例:COPY . /Desktop/CS612

编辑:反射(reflect)原始问题的变化

关于node.js - 尝试通过dockerize一个node.js文件但不断出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47778448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com