Tôi đang trong quá trình cố gắng chứa môi trường phát triển của chúng tôi bằng docker. Điều này bao gồm kết hợp các dự án Google Appengine cũng như các dịch vụ cuối cùng được lưu trữ trong công cụ Google Compute trong một vm được container.Docker Soạn thùng chứa hình tròn liên kết
Kịch bản khởi động môi trường phát triển hiện tại của chúng tôi mang đến elasticsearch và nginx trong boot2docker và các ứng dụng khác chạy trên localhost: {product port} trong hộp cát dev_appserver appengine. Quá trình này chứng tỏ khó quản lý và duy trì vì phải mất rất nhiều thông tin chi tiết về cách ứng dụng của chúng tôi giao tiếp.
Tôi gặp lỗi khi tạo docker đang phát hiện sự phụ thuộc vòng tròn giữa các vùng chứa.
Thông tư nhập khẩu giữa cs và VBC và aa và sr.
Như cấu hình này chỉ dành cho môi trường phát triển (Mac OSX), không ai có một lời đề nghị hay ý tưởng về một cách tiếp cận khác nhau để thực hiện khi kết nối tất cả các dãy sản phẩm phụ thuộc với nhau.
Một phần của Docker-compose.yml:
elasticsearch:
build: ./compute/containers/elasticsearch/elasticsearch
ports:
- "9200:9200"
environment:
- PROJECT_ID=localhost
nginx:
build: ./compute/containers/elasticsearch/nginx
links:
- elasticsearch:localhost
ports:
- "9201:9201"
cs:
build: ./CS
command: dev_appserver.py /src/ --host=0.0.0.0 --admin_host=0.0.0.0 --port=8080 --admin_port=9080 --storage_path=/data/
ports:
- "8080:8080"
- "9080:9080"
volumes:
- /Users/source/CS/src:/src
- /Users/source/CS/data:/data
aa:
build: ./AA
command: dev_appserver.py /src/ --host=0.0.0.0 --admin_host=0.0.0.0 --port=8081 --admin_port=9081 --storage_path=/data/
links:
- vbc:vbc-local
- st:st-local
- elasticsearch:localhost
ports:
- "8081:8081"
- "9081:9081"
volumes:
- /Users/source/AA/src:/src
- /Users/source/AA/data:/data
vbc:
image: google/cloud-sdk
command: dev_appserver.py /src/ --host=0.0.0.0 --admin_host=0.0.0.0 --port=8082 --admin_port=9082 --storage_path=/data/
links:
- cs:cs-local
- sr:sr-local
- sm:sm-local
- ms:ms-local
- st:st-local
- cis:cis-local
- elasticsearch:localhost
ports:
- "8082:8082"
- "9082:9082"
volumes:
- /Users/source/VBC/src:/src
- /Users/source/VBC/data:/data
sr:
build: ./SR
command: dev_appserver.py /src/ --host=0.0.0.0 --admin_host=0.0.0.0 --port=8083 --admin_port=9083 --storage_path=/data/
links:
- cs:cs-local
- aa:aa-local
ports:
- "8083:8083"
- "9083:9083"
volumes:
- /Users/source/SR/src:/src
- /Users/source/SR/data:/data
Bạn có thể xem xét sử dụng một dịch vụ đăng ký như lãnh sự https://github.com/progrium/docker-consul và người đăng ký tự động cho các vùng chứa của bạn như https://registry.hub.docker.com/u/progrium/registrator/. Với những thành phần này, bạn có thể đăng ký container của bạn trong lãnh sự và mọi thùng chứa sẽ phải đọc thông tin cần thiết từ lãnh sự, loại bỏ các phụ thuộc vòng tròn. Thêm phức tạp hơn mặc dù. – christian