Sono in procinto di tentare di containerizzare il nostro ambiente di sviluppo con la finestra mobile. Ciò include un mix di progetti Google Appengine e servizi eventualmente ospitati nel motore di Google Compute all'interno di un contenitore vm.Docker Componi il contenitore circolare che collega
Il nostro ambiente di sviluppo corrente script di avvio porta elasticsearch e nginx in boot2docker e le altre applicazioni eseguite su localhost: {porta prodotto} all'interno della sandbox appengine dev_appserver. Questo processo si sta dimostrando difficile da gestire e da mantenere, poiché richiede molte informazioni su come comunicano le nostre applicazioni.
Viene visualizzato un errore con la finestra mobile-compose che rileva una dipendenza circolare tra i contenitori.
Importazione circolare tra cs e vbc e aa e sr.
Poiché questa configurazione è solo per ambienti di sviluppo (mac osx), chiunque ha suggerimenti o idee su un approccio diverso da adottare quando si collegano insieme tutte le dipendenze delle suite del prodotto.
Una porzione di finestra mobile-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
si potrebbe considerare l'utilizzo di un servizio di registro come console https://github.com/progrium/docker-consul e un registratore automatico per i contenitori come https://registry.hub.docker.com/u/progrium/registrator/. Con questi componenti è possibile registrare i propri contenitori in console e ogni contenitore dovrebbe leggere le informazioni necessarie dal console, eliminando le dipendenze circolari. Tuttavia aggiunge più complessità. – christian