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 Dockerfile
s, 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
.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
Vous devez vous connecter pour publier un commentaire.
Ici est de savoir comment spécifier dockerfile. Désolé je ne peut pas le faire dans les commentaires que le formatage n'est pas pris en charge là-bas.
https://docs.docker.com/compose/compose-file/#context
Dockerfile
, y compris un espace à la fin. Je n'ai aucune idée de la façon dont cet espace est arrivé là, mais oui, ça fonctionne à nouveau.. 🙂 Merci mille fois pour vos suggestions! Je vais accepter votre réponse, parce qu'elle aurait fait de moi la solution.Heureux que vous avez trouvé. C'est très dur pour avis.
Pour ceux qui ne sont pas au clair sur pourquoi cela fonctionne, la raison en est que la
dockerfile
recherchées DANS la définition de construire contexte.Merci, c'est le moyen le plus simple pour exécuter docker sur Visual Studio 2017, enregistrer mon temps beaucoup!! J'ai essayé pour tenter de résoudre ce problème plus que 2 jours maintenant. Je ne sais pas pourquoi le modèle ne faites pas de liste de cette réponse comme un modèle par défaut
OriginalL'auteur Xiongbing Jin
J'ai eu ce problème sur Windows avec un
docker-compose.yml
créé par un modèle Visual Studio. Le modèle a été créé comme:Et j'ai été prise en erreur:
Cannot locate specified Dockerfile: <ProjectFolder>\Dockerfile
. J'ai changé le\
à/
et il a commencé à travailler pour moi (c'est à dire<ProjectFolder>/Dockerfile
). Peut-être que cela aide si quelqu'un a cette erreur sur Windows.OriginalL'auteur crgolden
Est
path
où vous vous attendez le Dockerfile? Vous pouvez vérifier à l'aide de la--verbose
drapeau comme:par exemple:
dans Dockerfile définir la ARGS:
et en composer de fichier comme :
OriginalL'auteur jmunsch
À l'intérieur de docker-composer.fichier yml pour faire le changement, afin de répondre à la Dockerfile:
OriginalL'auteur Dantez Layton
Vous devez spécifier le panneau de nom de fichier correctement et il est sensible à la casse. J'avais lettre majuscule dans DockerFile et donc il ne peut pas les trouver. Espérons que cela aide quelqu'un, qui a lutté comme moi. Mieux utiliser le dockerfile attribut composent le fichier.
OriginalL'auteur Karthikeyan VK