我正在尝试使用ReactJS项目在Docker中进行开发,这个项目将在整个团队中共享。
但是,我无法理解其工作原理,因为我想将我的app
目录卷分享到容器中,但似乎我必须将package.json
复制到容器中{ {1}}因此运行npm install
我的目录结构是:
nom run start
dockerfile
app/
src/
public/
node_modules/
package.json
docker/
admin/
dockerfile
docker-compose.yml
搬运工-compose.yml
FROM node:7.8.0
WORKDIR /app
RUN npm install
EXPOSE 3000
CMD npm run start
所以问题是:当dockerfile运行时,version: '3'
services:
admin:
build:
context: ./docker/admin
dockerfile: dockerfile
image: project/admin
volumes:
- ./app:/app
ports:
- "3000:3000"
失败,因为npm install
的卷共享还没有发生,所以它认为没有{{1} }}。所以我觉得我必须将docker-compose
复制到容器中,就进行更改而言,这对于开发来说并不理想。
此外,我相信你只能在与dockerfile相同的目录中将package.json
文件放入容器中,这意味着我必须将dockerfile移动到项目的根目录。我并不喜欢这个想法,因为我在这个项目中也有其他容器,他们也需要dockerfiles。
在Docker中处理Node开发是否有更好的解决方案?从本质上讲,我希望能够实现"运行"为团队中的其他开发人员尽可能简化流程。
答案 0 :(得分:0)
在开发过程中,您需要:
如果您在开发期间尝试将文件放入Docker容器,则开发过程将产生开销。您的计算机和开发人员将花费更多时间,然后使用本机使用node.js
这就是为什么在开发过程中将Node.js包装在Docker中是不好的做法。
在开发过程中需要Docker时?
docker-compose
是最佳解决方案权利。Dockerfile
+ .dockerignore
将描述如何制作您的工件