docker-composer donne une ERREUR: Impossible de localiser spécifié Dockerfile: Dockerfile

J'ai cloné un panneau de configuration qui utilise docker-composer. Une distance développeur confirme il fonctionne donc mon problème semble être avec ma configuration.

J'ai couru docker-compose up, mais que pour l'instant me donne ceci:

$ 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

Mon docker-compose.yml ressemble à ceci:

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

et l'arbre ressemble à ceci:

$ 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

La chose que je ne comprends pas, c'est que docker-compose semble trouver tous les Dockerfiles, sauf pour l'une dans le app dossier. J'ai installé les éléments suivants sur OSX 10.11.2:

  • Docker version 1.10.3, build 20f81dd
  • docker-compose version 1.6.2, build 4d72027

Je commence tout juste avec menu fixe et je suis un peu coincé ici. Quelqu'un sait ce qui pourrait éventuellement être faux ou comment je peut corriger cela? Tous les conseils sont les bienvenus!

[MODIFIER]
J'ai oublié de mentionner qu'il n'est pas caché .dockerignore fichier:

$ 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

et la .gitignore fichier ne contient rien de spécial à l'un ou l'autre (ne sais pas si c'est important):

$ cat .gitignore
.project
.pydevproject
Vérifiez si vous avez caché .dockerignore de fichier qui peut contenir Dockerfile dans son contenu. Une autre raison possible est que vous avez des liens symboliques dans votre structure de dossier.
J'ai oublié de mentionner qu'il n'est pas .dockerignore. J'ai cherché sur le système de fichiers entier (sudo find / -name .dockerignore) et n'a en trouver un .dockerignore fichier, mais qui a été en quelque totalement indépendants des pensions. Aussi, il n'existe pas de liens symboliques dans le projet.
Pouvez-vous spécifier explicitement le Dockerfile nom pour voir si elle fonctionne. voir docs.docker.com/compose/compose-file/#context. build: context: . dockerfile: Dockerfile-alternate
J'ai essayé de spécifier explicitement le docker fichier, mais j'obtiens une Unsupported config option for services.app: 'dockerfile'. Selon question la spécification d'un dockerfile n'est pas pris en charge. D'autres idées?
Pour moi, le problème était que mon Dockerfiles ont été précisées dans un répertoire. Le dockerfile est relatif à la context pour la construction.

OriginalL'auteur kramer65 | 2016-03-26