2016-01-13 145 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