使用Docker容器的NodeJS开发和执行环境

使用Docker进行NodeJS开发和执行环境

在进行NodeJS开发时,我希望能够针对不同的执行环境进行单独的配置并保留下来,同时也希望能够灵活地更改Node版本,因此我使用了Docker容器来创建NodeJS的开发和执行环境。
一种方法是每次执行时创建一个干净的容器,执行结束后将整个容器删除,但这次我选择了一种保持容器运行的方式。

作为使用方法,

    1. 在开始开发之前,先创建一个容器。

 

    1. 在开发过程中,保持容器的运行状态,并通过执行命令来运行NodeJS。

 

    1. 在主机(Windows/MacOS)上进行代码编辑。

 

    如果需要重新创建容器,可以使用docker-compose down命令来停止容器,然后使用docker-compose up命令来重新启动容器。

我预计是以这种形式。

使用Docker Compose建立并运行容器。

创建以下的docker-compose.yml,用于在轻量化的Alpine上运行NodeJS v16系列的映像。

version: '3'

services:
  app:
    image: node:16-alpine
    container_name: node-container
    tty: true
    volumes:
      - ./src:/src
    working_dir: "/src"

将其放在项目的根文件夹中,并将源代码和package.json放置在./src/及其子文件夹中。
当启动容器并运行时,请使用以下命令。

这样一来,容器将保持开启状态。

docker-compose up -d

安装所需库(npm install)

使用上述的docker-compose.yml文件,可以使用app: 来创建名为app的服务。通过指定该服务,可以执行命令。
由于想要执行npm install命令,所以使用docker-compose exec 来实现。

docker-compose exec app npm install

所以,您可以在先前创建的容器上运行npm install。

在执行命令的容器上运行程序。

与使用’npm install’相同的是,我们使用’docker-compose exec’。

docker-compose exec app node main.js

如果package.json文件被正确编写的话,

docker-compose exec app npm start

所以,您可以执行该程序。

写代码并进行开发

在docker-compose.yml文件的volumes部分,将./src目录挂载到容器中,因此在主机(Windows/MacOS)上编辑的内容将始终传递到容器中。
因此,您可以在Windows/MacOS上通过编辑./src/main.js等源代码,并使用docker-compose exec app npm start命令进行开发。

重新排列容器

只需要一个选项,用中文对以下内容进行改写:
由于在尝试和错误中,容器的环境有时会变得肮脏,所以在那时我们会重新创建容器。
这也很容易,在具有docker-compose.yml文件的目录中,

docker-compose down
docker-compose up -d

执行这个操作后,您可以放弃之前使用的容器,并重新创建一个新的容器。

每次都设置一个容器并运行

将NodeJS的package.json文件设置为以下内容:
重点是在script.clean-start的部分。
先删除node_modules目录,然后进行模块安装,最后执行Node。

{
  "scripts": {
    "start": "node ./main.js",
    "clean-start": "rm -r ./node_modules && npm install && npm start"
  },
  "dependencies": {
  }
}

这样做,当您键入以下命令时,会创建一个容器并执行上述操作,完成后会逐个删除容器。

docker-compose run --rm app npm run-script clean-start

请参考以下链接。(Please refer to the following link.)

https://qiita.com/nikadon/items/995c5705ff1171f7484d:
这是一个 Qiita 上的链接,提供了有关 Docker 和 Docker Compose 的相关信息。

https://docs.docker.jp/compose/compose-file.html:
这是一个 Docker 官方文档的链接,提供了有关 Docker Compose 文件的详细解释和说明。

广告
将在 10 秒后关闭
bannerAds