当我使用docker compose时,它可以完美地执行应用程序,但是,当我使用docker run时,什么也没发生
我有一个带有nginx proxy-pass的API Rest(Express和Mongodb)。
Docker文件:
FROM node:8-alpine
EXPOSE 3000
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
RUN mkdir /app
WORKDIR /app
ADD package.json yarn.lock /app/
RUN yarn --pure-lockfile
ADD . /app
CMD ["yarn", "start"]
Docker撰写:
version: "2"
services:
api:
build: .
environment:
- NODE_ENV=production
command: yarn start
volumes:
- .:/app
ports:
- "3000:3000"
tty: true
depends_on:
- mongodb
restart: always
nginx:
image: nginx
depends_on:
- api
ports:
- "80:80"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- mongodb
restart: always
mongodb:
image: mongo
ports:
- "27017:27017"
restart: always
最佳答案
When I use
docker compose
it performs perfectly the application, however, when I usedocker run
nothing happens
这似乎是预料之中的,因为
docker run
将运行一个图像。与
docker compose
相反,它将运行一个多容器Docker应用程序。您需要从正确的顺序开始运行所有镜像,以便发生任何事情。
关于mongodb - Docker运行不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51333338/