我想用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
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
Have someone a "hint" why i get this errors ? Or maybe could someone help me out to set up this environment ?
谢谢!
PS . 分别构建2个Dockerfiles不会抛出任何错误......
1 回答
看起来docker无法从您运行的当前目录中找到web /目录
docker-compose up
你的结构看起来像这样吗?
我创建了这种结构然后当我运行我的构建时,
为了确保一切正常,我建议您首先从同一目录运行
docker-compose build --no-cache
,这将确保您从一个干净的平板开始 .然后运行
docker-compose up
请让我知道它是怎么回事 .