Tôi đã sao chép một thiết lập docker sử dụng docker-compose. Một nhà phát triển từ xa xác nhận nó hoạt động để vấn đề của tôi dường như là với thiết lập của tôi.docker-compose cho ERROR: Không thể xác định vị trí Dockerfile được chỉ định: Dockerfile
Tôi chạy docker-compose up
, nhưng mà hiện tại mang lại cho tôi điều này:
$ 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
My docker-compose.yml
trông như thế này:
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
và cây trông như thế này:
$ 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
Các điều tôi không hiểu là docker-compose
dường như tìm tất cả Dockerfile
s, ngoại trừ một trong thư mục app
. Tôi đã có những sản phẩm sau được cài đặt trên OSX 10.11.2:
Docker version 1.10.3, build 20f81dd
docker-compose version 1.6.2, build 4d72027
Tôi chỉ bắt đầu với Docker và tôi kinda bị mắc kẹt ở đây. Có ai biết những gì có thể có thể là sai hoặc làm thế nào tôi có thể gỡ lỗi này? Tất cả các mẹo đều được chào đón!
[EDIT] tôi quên đề cập đến là không có ẩn tập tin .dockerignore:
$ ls -la
total 56
[email protected] 11 kramer staff 374 25 mrt 14:13 .
drwx------+ 1134 kramer staff 38556 26 mrt 17:27 ..
[email protected] 1 kramer staff 8196 26 mrt 08:14 .DS_Store
[email protected] 1 kramer staff 23 24 mrt 15:29 .gitignore
[email protected] 1 kramer staff 3879 24 mrt 15:29 README.rst
[email protected] 7 kramer staff 238 25 mrt 14:26 app
[email protected] 1 kramer staff 868 25 mrt 17:50 docker-compose.yml
[email protected] 1 kramer staff 219 24 mrt 15:29 env
[email protected] 3 kramer staff 102 24 mrt 15:29 mongo
[email protected] 3 kramer staff 102 24 mrt 15:29 mysql
[email protected] 3 kramer staff 102 24 mrt 15:29 redis
và file .gitignore không chứa bất cứ điều gì đặc biệt cả (không biết nếu vấn đề):
$ cat .gitignore
.project
.pydevproject
Kiểm tra xem bạn có ẩn '.docke không tệp rignore' có thể chứa 'Dockerfile' trong nội dung của nó. Một lý do khác có thể là bạn có các liên kết tượng trưng trong cấu trúc thư mục của bạn. –
@warmoverflow - Tôi quên đề cập rằng không có '.dockerignore'. Tôi đã tìm kiếm toàn bộ hệ thống tệp ('sudo find/-name .dockerignore') và đã tìm thấy một tệp' .dockerignore', nhưng đó là một số repo hoàn toàn không liên quan. Ngoài ra, không có symlink trong dự án. – kramer65
Bạn có thể chỉ định rõ ràng tên Dockerfile để xem nó có hoạt động hay không. xem https://docs.docker.com/compose/compose-file/#context.'build: ngữ cảnh:. dockerfile: Dockerfile-alternate' –