gpt4 book ai didi

node.js - 如何使用 Docker Compose 设置 Node.js 开发环境

转载 作者:搜寻专家 更新时间:2023-11-01 00:48:15 25 4
gpt4 key购买 nike

我想创建一个完整的 Node.js 环境来开发任何类型的应用程序(脚本、api 服务、网站等),同时使用不同的服务(例如 Mysql、Redis、MongoDB)。我想使用 Docker 来实现它,以便拥有一个可移植的多操作系统环境。

我为安装了 Node.js 的容器创建了一个 Dockerfile:

FROM node:8-slim

WORKDIR /app

COPY . /app

RUN yarn install

EXPOSE 80

CMD [ "yarn", "start" ]

还有一个 docker-compose.yml 文件,其中添加了我需要使用的服务:

version: "3"
services:
app:
build: ./
volumes:
- "./app:/app"
- "/app/node_modules"
ports:
- "8080:80"
networks:
- webnet
mysql:
...
redis:
...
networks:
webnet:

我想问你实现这些目标的最佳模式是什么:

  • 在主机和 docker 容器之间共享所有工作目录,以便编辑文件并从双方查看更改。

  • node_modules 目录在主机和 docker 容器上都可见,以便也可以从主机中的 IDE 进行调试。

  • 因为我想要一个适合每个项目的开发环境,所以我会有一个容器,一旦它启动,我就可以使用 docker-compose exec app bash 这样的命令登录。所以我正在尝试寻找另一种方法来保持容器事件而不是运行 Node.js 服务器或使用 CMD ['tail', '-f', '/d/null']

谢谢指教!

最佳答案

在主机和 docker 容器之间共享所有工作目录,以便编辑文件并从双方查看更改。

  • 使用 -v volume 选项共享 docker 容器内的主机卷

让 node_modules 目录在主机和 docker 容器上都可见,以便也可以从主机中的 IDE 进行调试。

  • 同上

因为我想要一个适合每个项目的开发环境,所以我会有一个容器,一旦它启动,我就可以使用像 docker-compose exec app bash 这样的命令登录。所以我正在尝试寻找另一种方法来保持容器事件而不是运行 Node.js 服务器或使用 CMD ['tail', '-f', '/d/null']

  • docker-compose.yml 为交互模式定义这些

    stdin_open: 真 tty: 真

然后使用命令docker exec -it 运行容器

关于node.js - 如何使用 Docker Compose 设置 Node.js 开发环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55978658/

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