在观看了一些教程后,我尝试通过 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'
任何帮助将不胜感激
答案 0 :(得分:2)
每次更新应用程序时,只需运行以下命令即可更新容器;
docker-compose up -d --build
如果代码文件发生更改,这将构建新映像并更新容器并在分离时继续在后台运行。