【发布时间】:2019-05-04 01:05:13
【问题描述】:
我想创建一个完整的 Node.js 环境来开发任何类型的应用程序(脚本、api 服务、网站 ecc。)也使用不同的服务(例如 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'] 的技巧
谢谢你的建议!
【问题讨论】:
标签: node.js docker docker-compose