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

时间:2021-03-16 00:44:26

标签: docker docker-compose

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

的错误
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'     

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

每次更新应用程序时,只需运行以下命令即可更新容器;

docker-compose up -d --build

如果代码文件发生更改,这将构建新映像并更新容器并在分离时继续在后台运行。

相关问题