我正在尝试在Docker中开发ReactJS项目,并且该项目将在团队中共享。Docker - 用于开发环境的npm安装
不过,我无法理解这是如何工作的,因为我想量份额我app
目录放入容器中,但似乎我必须package.json
复制到容器中以npm install
,因此运行nom run start
我目录结构是:
app/
src/
public/
node_modules/
package.json
docker/
admin/
dockerfile
docker-compose.yml
dockerfile
FROM node:7.8.0
WORKDIR /app
RUN npm install
EXPOSE 3000
CMD npm run start
搬运工,compose.yml
version: '3'
services:
admin:
build:
context: ./docker/admin
dockerfile: dockerfile
image: project/admin
volumes:
- ./app:/app
ports:
- "3000:3000"
所以问题是:当dockerfile运行,npm install
因为从docker-compose
体积共享还没有发生,所以它认为没有package.json
失败。所以这听起来像我必须将package.json
复制到容器中,这对于开发而言并不理想,只要进行更改即可。
此外,我相信你只能将COPY
文件放入与dockerfile相同的目录中,这意味着我必须将dockerfile移动到项目的根目录。我不喜欢这个想法,因为我在这个项目中也会有其他容器,他们也需要dockerfiles。
是否有更好的解决方案来处理Docker中的Node开发?从本质上讲,我希望为团队中的其他开发人员尽可能简化“正常运行”流程。
嗯有意思,我不知道这是不是一个最佳实践。在Node或Docker社区的其他地方记录吗? – djt
我在会议/聚会视频中看到过好几次,但我不记得有关此的任何文档。这只是常识,不是文档的一部分。 – galkin