2016-01-13 144 views
3

我想用docker compose.i创建一个完整的nodejs/mongodb环境。我创建了一个mongodump到radcupDevSample.json,我想mongo恢复一个新的MongoDB容器。在此之后,我想要一个新的节点容器与我的API与示例数据链接到mondodb容器。Docker-compose使用数据和nodejs服务器设置mongodb

我有以下文件:

1泊坞窗,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.网络Dockerfile:

FROM node 
RUN apt-get update -y 
RUN apt-get install -y git 
RUN apt-get install -y vim 
RUN git clone https://[email protected]/jdklfj /home/app 
WORKDIR /home/app/src 
RUN npm install 
CMD "npm start" 
EXPOSE 3000 

3”。 “ dockerfile

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

我用这个答案这里提到: How do I seed a mongo database using docker-compose?

我的问题是:如果我尝试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不抛出任何错误...

回答

1

貌似泊坞窗无法从你的当前目录中找到web /目录,你正在运行docker-compose up

贵结构是这样的?

[email protected]:~/tmp/docker-compose-mongo$ tree . 
. 
├── docker-compose.yml 
├── Dockerfile 
├── radcupDevSample.json 
├── src 
└── web 
    └── Dockerfile 

2 directories, 4 files 
[email protected]:~/tmp/docker-compose-mongo$ 

我创造了这种结构,然后,当我跑我的身材,

[email protected]:~/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第一,这将确保你从一个干净的石板开始。

[email protected]:~/docker-compose-mongo$ docker-compose build --no-cache 
db uses an image, skipping 
Building web 
Step 1 : FROM node 
---> ac9b478bfbbd 
... 

,然后运行docker-compose up

请让我知道如何去。

+0

非常感谢,问题是我没有与导演脱口而出的码头文件风格。将一个dockerfile命名为web将不起作用。在我创建一个web /目录和一个新的Dockerfile后,一切都按预期工作。 – immae