gpt4 book ai didi

Docker 在尝试使用 nodejs 、 nodemon 和子文件夹时以代码 0 退出

转载 作者:行者123 更新时间:2023-12-02 18:18:19 24 4
gpt4 key购买 nike

我有这个工作正常的设置,但最近我将所有代码移动到子文件夹 functions .

web 以 0 退出
mongo 运行良好。

注意:我正在创建该子文件夹功能,因为我正在尝试使用 firebase。

docker-compose.yml

version: "3"
services:
web:
build: .
ports:
- "8080:8080"
links:
- mongo
volumes:
- .:/usr/src/app
mongo:
image: mongo
ports:
- "27018:27017"
volumes:
- mongodata:/data/db
volumes:
mongodata:

Dockerfile
FROM node:latest

WORKDIR /usr/src/app

COPY functions/package*.json ./

RUN npm install

COPY . .

EXPOSE 8080

RUN npm install -g nodemon

CMD [ "nodemon", "functions/index.js" ]

.dockerignore
node_modules
npm-debug.log

enter image description here

最佳答案

我已经检查了当前的情况是这样的:
docker-compose run web bash
在 bash 中,我使用 ls 检查了文件夹结构他们来自根文件夹。因此,即使您将函数文件夹复制到 docker-image,它的卷也会覆盖 docker-image 文件夹。

我试图将 web -> 卷值更改为 - .functions:/usr/src/app在 docker-compose.yml 中,但它没有用。

所以最后我搬家了Dockerfiledocker-compose.yml functions下的文件文件夹。并更改了脚本,例如

Dockerfile

FROM node:latest

WORKDIR /usr/src/app

COPY . .

RUN npm install

EXPOSE 8080

RUN npm install -g nodemon
CMD nodemon "index.js"

docker-compose.yml
version: "3"
services:
web:
build: .
ports:
- "8080:8080"
links:
- mongo
volumes:
- .:/usr/src/app
mongo:
image: mongo
ports:
- "27018:27017"

在我的终端中使用此命令:
cd functions && docker-compose -f ./docker-compose.yml up --build --force-recreate
它工作正常,但我建议您不要将您的应用程序移动到另一个文件夹下并拥有一个子 npm 项目。将来你会遇到不同的问题,就像你运行测试时一样。您需要找到一种方法将它们保存在根文件夹中。

关于Docker 在尝试使用 nodejs 、 nodemon 和子文件夹时以代码 0 退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60969195/

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