Node.js Docker集装箱的持续发展

Node.js Docker集装箱的持续发展,node.js,docker,docker-compose,Node.js,Docker,Docker Compose,我正在使用docker进行一个新项目,用于学习目的。我想这会让事情变得容易很多,因为我只需要设置一次环境 我创建了一个这样的设置;我创建了一个安装Ubuntu和NodeJS的基本映像。我还创建了一个开发映像,它将src(web应用程序)文件夹复制到容器中,然后执行npm安装,并运行server.js。简而言之,基本上就是这样 但是现在,每当我对源代码进行更改时,我都必须停止正在运行的容器,构建映像并再次运行它。重建和运行de-Development映像并不需要很长时间,但每次在开发过程中更改代码

我正在使用docker进行一个新项目,用于学习目的。我想这会让事情变得容易很多,因为我只需要设置一次环境

我创建了一个这样的设置;我创建了一个安装Ubuntu和NodeJS的基本映像。我还创建了一个开发映像,它将
src
(web应用程序)文件夹复制到容器中,然后执行
npm安装
,并运行
server.js
。简而言之,基本上就是这样

但是现在,每当我对源代码进行更改时,我都必须停止正在运行的容器,构建映像并再次运行它。重建和运行de-Development映像并不需要很长时间,但每次在开发过程中更改代码时,这样做都有点烦人

我通常会做一个吞咽任务或者浏览同步来查看我的本地文件。每次我进行更改时,这些更改都会自动显示在浏览器中。这确实加快了开发过程

在开发过程中,通过在本地安装所有东西,我仍然可以这样工作。但这有点违背了树立“发展形象”的目的。这意味着我仍然需要配置所有希望在这个web应用程序上工作的系统,包括适当的节点版本、数据库方案、端口映射、SSL设置、证书等


所以我的问题是,有没有办法运行一个容器,每当我(本地)更改源代码时,它就会自动推送到运行的容器中?所以我有“持续开发”?

如果我理解正确,您不希望在每次更新src时构建开发映像。如果是这种情况,您可以做的是:

对于开发阶段(当源代码频繁更新时):

  • 以使用共享卷(源代码将驻留在其中)的方式创建Dockerfile
  • 在共享卷中,可以使用src容器更新源代码
  • 此外,如果您需要执行一些额外的任务,可以将其写入脚本中,并在每次更新源代码时调用该脚本

  • 稍后,当开发阶段结束时,您可以使用当前Dockerfile来构建开发映像。

    这就是我的意思。听起来是解决我问题的好办法。今天晚些时候我会试一试。谢谢