【问题标题】:Docker container is not updating on code changeDocker 容器未根据代码更改进行更新
【发布时间】:2023-02-25 21:17:41
【问题描述】:

所以我在终端中使用 nest new project 命令创建了默认的 nest.js 项目。 在根文件夹中我创建了文件:

文件

# Base image
FROM node:18-alpine AS base

WORKDIR /app

COPY package*.json ./


FROM base AS dev

# Install app dependencies
RUN npm install

# Bundle app source
COPY . .
EXPOSE 4250
CMD [ "npm", "run", "start:dev" ]


FROM base AS prod

RUN npm install

COPY . .
RUN npm run build

CMD [ "npm", "run", "start:prod" ]

docker-compose.yml

version: '3.9'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
      target: dev
    ports:
      - 4250:4250
    volumes:
      - ./src:/app/src

.dockerignore

node_modules
dist
.git
.env
docker.env

然后我运行命令 docker-compose up ,结果在 CLI 中我有消息:

我现在可以使用邮递员测试应用程序,或者只是在浏览器中打开 localhost:4250,但在代码容器发生更改时不会重建。 如何解决?

附言。这是最简单的 docker configs 版本,我计划对其进行构建/优化,但首先我需要解决未注册更新的问题。

【问题讨论】:

  • 您是否需要 Docker 来进行此设置? Docker 的文件系统隔离功能可能会导致尝试模拟本地实时重新加载环境时出现问题,而且我经常看到它不起作用的问题。你能在这里使用没有 Docker 的 Node 吗?
  • Nest.js 或其他任何东西在没有 docker 的情况下效果最好。但是在 API 中使用 docker 是我收到的测试任务的一部分。另外,在我以前的公司中,我们在后端配置了 docker,但是复制粘贴 compose-docker.yml 文件没有帮助。

标签: docker docker-compose nestjs


【解决方案1】:

有一个未使用的代码块:

FROM 基础 AS 开发

# Install app dependencies
RUN npm install

# Bundle app source
COPY . .
EXPOSE 4250
CMD [ "npm", "run", "start:dev" ]

对其进行评论或在那里进行构建并将其复制到下一步。

要重建容器,请执行 docker-compose up --build

【讨论】:

  • 谢谢你的回答。 There is an unused block of code: 是什么意思?据我所知,我的代码应该可以工作:在 docker-compose file target: dev 中意味着我们将使用 FROM base AS dev... 来自 Dockerfile 的命令块。我还想在代码更改时更新容器,而不是先 docker-compose down 然后再 docker-compose up --rebuild。在我的案例中使用 docker-compose up -rebuild 并不能解决问题——也许我需要设置网络,否则?
【解决方案2】:

所以。感谢所有答案。现在的 Docker 设置实际上是正确的。 问题的答案是在这个链接: Container created with docker-compose up doesn`t update on code change

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2019-09-11
  • 2017-01-29
  • 2019-06-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多