当我使用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
答案 0 :(得分:0)
当我使用
docker compose
时,它可以完美地执行应用程序,但是,当我使用docker run
时,什么也没发生
这似乎是预料之中的,因为docker run
将运行一个图片。
与docker compose
相对,后者将运行多容器 Docker应用程序。
您需要从正确的顺序开始运行所有个映像,以便进行任何操作。