首页 > 解决方案 > Docker 不会通过更改源代码来构建容器

问题描述

我对 Docker 比较陌生,我刚刚创建了一个 Node.js 应用程序,它应该与也在 Docker 上运行的其他服务连接。

所以我得到了源代码和一个 Dockerfile 来设置这个图像和一个 docker-compose 来编排环境。

一开始我遇到了一些问题,所以我刚刚更新了我的源代码,发现它没有在 docker-compose 的下一个版本中得到更新。

例如,我注释了所有连接到 Redis 和 MongoDB 的行。我在本地运行应用程序,这很好。但是当我在容器中再次创建它时,我收到错误“连接被拒绝...”

我尝试了很多东西,这就是我现在得到的:

Dockerfile

FROM node:9
WORKDIR /app
COPY package.json /app
RUN npm install
COPY . /app
CMD node app.js
EXPOSE 8090

码头工人-compose.yml

version: '3'
services:
  app:
    build: .
    ports:
     - "8090:8090"
    container_name: app
  redis:
    image: redis:latest
    ports:
      - "6379:6379"
    container_name: redis
  mongodb:
    image: mongo:latest
    container_name: "mongodb" 
    volumes:
      - ./data/db:/data/db
    ports:
      - 27017:27017

up.sh

sudo docker stop app
sudo docker rm app
docker-compose build --no-cache app
sudo docker-compose up --force-recreate

关于可能是什么问题的任何想法?为什么不使用当前的源代码?它正在使用某种缓存。

标签: node.jsdockerdocker-composedockerfile

解决方案


推荐阅读