使用 Docker 和 Node 图像开发 VuejS (NuxtJs) 应用程序

Using Docker with Node image to develop a VuejS (NuxtJs) app

情况

我必须在 VueJs (NuxtJs) spa 上工作,所以我尝试将 Docker 与 Node 图像一起使用以避免在我的电脑上安装它,但我不知道如何制作它有效。

项目

源代码在它自己的 application 文件夹中,因为它是版本化的,并且在根级别有 docker-compose.yaml file

文件夹结构
my-project-folder
├ application
| └ ...
└ docker-compose.yaml
docker-compose.yaml
version: "3.3"

services:
  node:
    # container_name: prova_node
    restart: 'no'
    image: node:lts-alpine
    working_dir: /app
    volumes:
      - ./application:/app

问题

容器启动但立即退出,退出状态为 0(因此它正确执行),但这样我就无法使用它来处理项目。

关于 Node 图像或 Docker 大概我遗漏了一些东西;我想做的是将 docker 容器连接到 运行 npm 命令,如 installrun start 等,然后在 [=19] 上检查浏览器上的应用程序=] 或其他任何内容。

我建议使用带有基本映像的 Dockerfile 作为节点,然后创建 运行 应用程序的入口点。当我们想要为我们的容器维护一些状态时,这将消除使用卷的需要。

您的 Dockerfile 可能如下所示:

FROM node:lts-alpine
RUN mkdir /app
COPY application/ /app/
EXPOSE 3000
CMD npm start --prefix /app 

然后您可以直接通过 docker run 命令 运行 或使用 docker-compose.yaml 如下:

version: "3.3"

services:
  node:
    # container_name: prova_node
    restart: 'no'
    build: 
      context: .
    ports:
      - 3000:3000