繁体   English   中英

Docker-compose setup mongodb with data和nodejs server

[英]Docker-compose setup mongodb with data and a nodejs server

我想用docker compose.i创建一个mongodump到radcupDevSample.json,我希望mongo恢复一个新的mongodb容器,从而启动整个nodejs / mongodb环境。 在此之后,我想要一个新的节点容器,我的api链接到带有示例数据的mondodb容器。

我有以下文件:

1. docker-compose.yml:

db:
  image: mongo
  ports: 
    - "27017:27017"`

mongo-importer:
      build: .

web: 
     build: web
     links:
            - db 
     ports:
            - "3000:3000"
      volumes: 
             - ./src:/home/env
      environment:
            NODE_ENV: development

2. web Dockerfile:

FROM node
RUN apt-get update -y
RUN apt-get install -y git
RUN apt-get install -y vim
RUN git clone https://sdsds-oauth-basic@github.com/jdklfj /home/app
WORKDIR /home/app/src
RUN npm install
CMD "npm start"
EXPOSE 3000

“。” dockerfile

FROM mongo
COPY radcupDevSample.json /radcupDevSample.json
CMD mongorestore -h db /radcupDevSample.json

我使用了这里提到的答案: 如何使用docker-compose为mongo数据库播种?

我的问题是:如果我尝试docker-compose up我得到这个错误:

docker-compose up
radcupbackend_db_1 is up-to-date
Building web
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/compose/compose/cli/main.py", line 54, in main
  File "/compose/compose/cli/docopt_command.py", line 23, in sys_dispatch
  File "/compose/compose/cli/docopt_command.py", line 26, in dispatch
  File "/compose/compose/cli/main.py", line 171, in perform_command
  File "/compose/compose/cli/main.py", line 587, in up
  File "/compose/compose/project.py", line 313, in up
  File "/compose/compose/service.py", line 404, in execute_convergence_plan
  File "/compose/compose/service.py", line 303, in create_container
  File "/compose/compose/service.py", line 326, in ensure_image_exists
  File "/compose/compose/service.py", line 723, in build
  File "/compose/venv/lib/python2.7/site-packages/docker/api/build.py", line 41, in build
TypeError: You must specify a directory to build in path
docker-compose returned -1

有人“提示”为什么我会收到这个错误? 或者也许有人可以帮我设置这个环境?

谢谢!

PS。 分别构建2个Dockerfiles不会抛出任何错误......

看起来docker无法从您运行docker-compose up当前目录中找到web /目录

你的结构看起来像这样吗?

anovil@ubuntu-anovil:~/tmp/docker-compose-mongo$ tree .
.
├── docker-compose.yml
├── Dockerfile
├── radcupDevSample.json
├── src
└── web
    └── Dockerfile

2 directories, 4 files
anovil@ubuntu-anovil:~/tmp/docker-compose-mongo$

我创建了这种结构然后当我运行我的构建时,

anovil@ubuntu-anovil:~/docker-compose-mongo$ docker-compose up
dockercomposemongo_db_1 is up-to-date
Starting dockercomposemongo_web_1
Building mongo-importer
Step 1 : FROM mongo
 ---> 94a166215fe3
...

为了确保一切正常,我建议您首先从同一目录运行docker-compose build --no-cache ,这样可以确保从一个干净的平板开始。

anovil@ubuntu-anovil:~/docker-compose-mongo$ docker-compose build --no-cache
db uses an image, skipping
Building web
Step 1 : FROM node
 ---> ac9b478bfbbd
...

然后运行一个docker-compose up

请让我知道它是怎么回事。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM