docker compose构建应用程序的旧版本

docker compose构建应用程序的旧版本,docker,docker-compose,Docker,Docker Compose,看了一些教程后,我试图通过docker compose将node.js应用程序进行dockerize,但遇到了一个问题 运行命令sudocker compose upapp似乎可以构建并运行该应用程序。的确,它可以工作,但不知何故,它构建了一个旧版本的应用程序,与本地运行的应用程序完全不同假设docker从master分支构建,我更新了master分支,但没有帮助。 然后我尝试停止,sudocker compose stop,删除并重新创建,但结果相同。 我还必须将mongo端口从'27017:

看了一些教程后,我试图通过
docker compose
node.js
应用程序进行dockerize,但遇到了一个问题
运行命令
sudocker compose up
app似乎可以构建并运行该应用程序。的确,它可以工作,但不知何故,它构建了一个旧版本的应用程序,与本地运行的应用程序完全不同
假设docker从
master
分支构建,我更新了
master
分支,但没有帮助。
然后我尝试停止,
sudocker compose stop
,删除并
重新创建
,但结果相同。
我还必须将
mongo端口
从'27017:27017'更改为'27018:27017',因为同时运行相同的
端口
会引发错误
以下是
端口的错误

ERROR: for a9df50cd75ad_a9df50cd75ad_a9df50cd75ad_mongo  Cannot start service mongo: driver failed programming external connectivity on endpoint mongo (1cc6f9047ccafde83776075e8fa22f86a75eb653bf9f4f0953bd76ee8120a99d): Error starting userland proxy: listen tcp4 0.0.0.0:27017: bind: address already in use

ERROR: for mongo  Cannot start service mongo: driver failed programming external connectivity on endpoint mongo (1cc6f9047ccafde83776075e8fa22f86a75eb653bf9f4f0953bd76ee8120a99d): Error starting userland proxy: listen tcp4 0.0.0.0:27017: bind: address already in use
ERROR: Encountered errors while bringing up the project.

Dockerfile


FROM node:latest

WORKDIR usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

expose 8000

CMD ["npm", "start"]
docker compose.yml
文件

version: '3'
services:
  app: 
    container_name: docker-commerce
    restart: always
    build: .
    ports: 
    - '8000:8000'
    links: 
    - mongo 
  mongo: 
    container_name: mongo
    image: mongo
    ports: 
      - '27018:27017'     

每当您更新应用程序时,我们将非常感谢您的帮助,只需运行下面的更新容器即可

docker compose up-d——构建


如果代码文件发生更改,这将生成新图像,并更新容器,并在后台以分离状态继续运行它。

每次更新应用程序时,只需运行下面的更新容器

docker compose up-d——构建


如果代码文件发生更改,这将生成新图像,并更新容器,并在后台以分离状态继续运行它。

尝试
docker compoae build-no cache
,然后
docker compose up
Hi@DazWilkin,谢谢您的回答。我尝试了你说的命令,但仍然有相同的结果。本地运行的应用程序和Docker Compose下运行的应用程序有什么区别?是数据还是用户界面?奇怪的是,您需要将暴露的端口修改为
27018
。这表明您正在本地(或其他服务器)运行另一个MongoDB实例,这是使用端口
27017
。在主机端口
27017
上运行MongoDB访问端口
27017
上的容器应该没有问题,否则。嗨@DazWilkin,我更新了我的帖子,错误是我得到了与mongo相同的端口。当我说应用程序的不同版本时,我的意思是当我在本地运行它时,运行的容器不是project的版本。这是一个旧版本,我一个月前就有了。请尝试
docker compoae build-no cache
,然后
docker compose up
Hi@DazWilkin,谢谢你的回答。我尝试了你说的命令,但仍然有相同的结果。本地运行的应用程序和Docker Compose下运行的应用程序有什么区别?是数据还是用户界面?奇怪的是,您需要将暴露的端口修改为
27018
。这表明您正在本地(或其他服务器)运行另一个MongoDB实例,这是使用端口
27017
。在主机端口
27017
上运行MongoDB访问端口
27017
上的容器应该没有问题,否则。嗨@DazWilkin,我更新了我的帖子,错误是我得到了与mongo相同的端口。当我说应用程序的不同版本时,我的意思是当我在本地运行它时,运行的容器不是project的版本。这是我一个月前的旧版本。你好,穆罕默德·莱克·萨里奥,谢谢你的回答。不幸的是,这也无济于事。不知道是什么问题。它似乎没有更新容器,因为它给出的错误与已使用的端口相同。尝试运行docker compose,然后运行相同的命令进行构建。您好@Muhammad Laique Sario,谢谢您的回答。不幸的是,这也无济于事。不知道是什么问题。它似乎没有更新容器,因为它给出的错误与已使用的端口相同。尝试运行docker compose down,然后运行相同的命令进行构建。