docker-compose给出错误:找不到指定的Dockerfile:Dockerfile
我克隆了一个使用docker-compose的docker设置。 一个远程开发人员确认它的工作,所以我的问题似乎与我的设置。
我跑docker-compose up
,但目前给我这个:
$ docker-compose up Creating volume "mycompanydocker_mysql-data" with local driver Creating volume "mycompanydocker_redis-data" with local driver Creating volume "mycompanydocker_app-data" with local driver Creating volume "mycompanydocker_mongo-data" with local driver mycompanydocker_redis_1 is up-to-date mycompanydocker_mongo_1 is up-to-date mycompanydocker_mysql_1 is up-to-date Building app ERROR: Cannot locate specified Dockerfile: Dockerfile
我docker-compose.yml
如下所示:
version: '2' services: mysql: build: mysql/. env_file: env expose: - 3306 ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql mongo: build: mongo/. env_file: env expose: - 27017 ports: - "27017:27017" volumes: - mongo-data:/data/db redis: build: redis/. env_file: env expose: - 6379 ports: - "6379:6379" volumes: - redis-data:/data app: build: app/. env_file: env expose: - 80 ports: - "80:80" volumes: # To mount a local directory, change this # To use a docker volume - app-data:/app # local app # - ./mycompany:/app depends_on: - mysql - mongo - redis volumes: app-data: driver: local mysql-data: driver: local redis-data: driver: local mongo-data: driver: local
树看起来像这样:
$ tree . ├── README.rst ├── app │ ├── Dockerfile │ ├── bin │ │ ├── setup.sh │ │ ├── start-nginx.sh │ │ ├── start-rqworker.sh │ │ ├── start.sh │ │ └── update.sh │ ├── etc │ │ ├── nginx │ │ │ └── sites-available │ │ │ └── app │ │ ├── supervisor │ │ │ └── conf.d │ │ │ └── supervisord.conf │ │ └── supervisord.conf │ └── ssh │ └── id_rsa ├── docker-compose.yml ├── env ├── mongo │ └── Dockerfile ├── mysql │ └── Dockerfile └── redis └── Dockerfile
我不明白的是, Dockerfile
docker-compose
似乎find所有的Dockerfile
,除了在app
文件夹中的。 我已经在OSX 10.11.2上安装了以下内容:
-
Docker version 1.10.3, build 20f81dd
-
docker-compose version 1.6.2, build 4d72027
我刚刚开始与Docker,我有点卡在这里。 有人知道什么可能是错的,或者我可以如何debugging? 所有的提示,欢迎!
[编辑]我忘了提及没有隐藏的.dockerignore文件:
$ ls -la total 56 drwx------@ 11 kramer staff 374 25 mrt 14:13 . drwx------+ 1134 kramer staff 38556 26 mrt 17:27 .. -rw-r--r--@ 1 kramer staff 8196 26 mrt 08:14 .DS_Store -rw-r--r--@ 1 kramer staff 23 24 mrt 15:29 .gitignore -rw-r--r--@ 1 kramer staff 3879 24 mrt 15:29 README.rst drwxr-xr-x@ 7 kramer staff 238 25 mrt 14:26 app -rw-r--r--@ 1 kramer staff 868 25 mrt 17:50 docker-compose.yml -rw-r--r--@ 1 kramer staff 219 24 mrt 15:29 env drwxr-xr-x@ 3 kramer staff 102 24 mrt 15:29 mongo drwxr-xr-x@ 3 kramer staff 102 24 mrt 15:29 mysql drwxr-xr-x@ 3 kramer staff 102 24 mrt 15:29 redis
.gitignore文件不包含任何特殊的内容(不知道它是否重要):
$ cat .gitignore .project .pydevproject
以下是如何指定dockerfile。 对不起,我不能在评论中作为格式不支持那里。
https://docs.docker.com/compose/compose-file/#context
app: build: context: app dockerfile: Dockerfile
是你期待Dockerfile的path
吗? 你可以使用--verbose
标志来检查:
docker-compose --verbose up | grep compose.cli.verbose_proxy.proxy_callable | grep path
例如:
compose.cli.verbose_proxy.proxy_callable: docker build <- (pull=False, cache_from=None, stream=True, nocache=False, labels=None, tag='your_app', buildargs={'some_build': '1901', 'addr': '0.0.0.0', 'corsdomain': '*', 'rpcport': '8545'}, forcerm=False, rm=True, path='/Users/jmunsch/Desktop/dev/your_app/app?', # in the verbose output dockerfile='Dockerfile')
在Dockerfile中定义ARGS:
ARG some_flag= ARG some_build=1900 ARG addr=0.0.0.0 ARG corsdomain="*" ARG rpcport=8545
并在一个撰写文件,如:
build: context: ./your_app dockerfile: Dockerfile args: some_flag: # --some_flag some_build: 1901 # --some_build 1901 rpcaddr: 0.0.0.0 # --rpcaddr 0.0.0.0 rpcport: 8545 # --rpcport 8545 corsdomain: "*" # --corsdomain
- 如何configurationDocker的mysql + aspnet
- DC / OS JMX访问
- 在Docker中更改区域设置停止执行许多命令?
- Docker和Ansible如何配合实现Continuos Delivery / Continuous Deployment
- 为什么Play项目中的sbt-docker的enablePlugins(DockerPlugin)给出了“错误:对DockerPlugin的引用是不明确的”?
- 在EBS中将S3文件下载到docker镜像
- neo4j websocket连接失败
- docker中的rabbitmq的Spring Boot应用程序问题
- docker nginx容器无法启动