Django

5

के लिए docker-compose.yml से dockerrun.aws.json का अनुवाद कैसे करें Iपर निर्देशों का पालन कर रहा हूं ताकि मूल डॉकराइज्ड django ऐप जा सके। मैं इसे बिना किसी समस्या के स्थानीय रूप से चलाने में सक्षम हूं लेकिन मुझे लोचदार बीनस्टॉक का उपयोग करके एडब्ल्यूएस पर तैनात करने में परेशानी हो रही है। here पढ़ने के बाद, मुझे लगा कि मुझे काम करने के लिए डॉकरुन.ओ.एस.एस.एस. में डॉकर-कंपोज़.इम्एल का अनुवाद करने की आवश्यकता है।Django

मूल डोकर-compose.yml

version: '2' 
services: 
    db: 
    image: postgres 
    web: 
    build: . 
    command: python manage.py runserver 0.0.0.0:8000 
    volumes: 
     - .:/code 
    ports: 
     - "8000:8000" 
    depends_on: 
     - db 

है और यहाँ मैं अब तक

{ 
    "AWSEBDockerrunVersion": 2, 
    "volumes": [ 
    { 
     "name": "db" 
    }, 
    { 
     "name": "web" 
    } 
    ], 
    "containerDefinitions": [ 
    { 
     "name": "db", 
     "image": "postgres", 
     "essential": true, 
     "memory": 256, 
     "mountPoints": [ 
     { 
      "sourceVolume": "db" 
      "containerPath": "/var/app/current/db" 
     } 
     ] 
    }, 
    { 
     "name": "web", 
     "image": "web", 
     "essential": true, 
     "memory": 256, 
     "mountPoints": [ 
     { 
      "sourceVolume": "web" 
      "containerPath": "/var/app/current/web" 
     } 
     ], 
     "portMappings": [ 
     { 
     "hostPort": 8000, 
     "containerPort": 8000 
     } 
    ], 
    "links": [ 
     "db" 
     ], 
     "command": "python manage.py runserver 0.0.0.0:8000" 
    } 
    ] 
} 

क्या अनुवाद, लेकिन यह काम नहीं कर रहा है। मैं क्या गलत कर रहा हूं?

उत्तर

3

मैं Dockerrun प्रारूप के इन्स और आउट प्राप्त करने के लिए संघर्ष कर रहा था। Container Transform देखें: "डॉकर-कंपोज़, ईसीएस, और मैराथन कॉन्फ़िगरेशन ट्रांसफॉर्म करें" ... यह एक जीवन-बचतकर्ता है। यहां बताया गया है कि यह आपके उदाहरण के लिए आउटपुट है:

{ 
    "containerDefinitions": [ 
     { 
      "essential": true, 
      "image": "postgres", 
      "name": "db" 
     }, 
     { 
      "command": [ 
       "python", 
       "manage.py", 
       "runserver", 
       "0.0.0.0:8000" 
      ], 
      "essential": true, 
      "mountPoints": [ 
       { 
        "containerPath": "/code", 
        "sourceVolume": "_" 
       } 
      ], 
      "name": "web", 
      "portMappings": [ 
       { 
        "containerPort": 8000, 
        "hostPort": 8000 
       } 
      ] 
     } 
    ], 
    "family": "", 
    "volumes": [ 
     { 
      "host": { 
       "sourcePath": "." 
      }, 
      "name": "_" 
     } 
    ] 
} 
Container web is missing required parameter "image". 
Container web is missing required parameter "memory". 
Container db is missing required parameter "memory". 

है यही कारण है, इस नए स्वरूप में, आप इसे बताना होगा प्रत्येक कंटेनर आवंटित करने के लिए कितनी स्मृति। इसके अलावा, आपको एक छवि प्रदान करने की आवश्यकता है - निर्माण करने का कोई विकल्प नहीं है। जैसा कि टिप्पणियों में उल्लेख किया गया है, आप डॉकरहब या ईसीआर को बनाना और धक्का देना चाहते हैं, फिर उसे वह स्थान दें: उदाहरण के लिए डॉकरहब पर [org name]/[repo]:latest, या ईसीआर के लिए यूआरएल। लेकिन container-transform आपके लिए mountPoints और volumes करता है - यह आश्चर्यजनक है।

1

आपके पास कुछ समस्याएं हैं।

1) 'वेब' एक 'छवि' प्रतीत नहीं होता है, तो आप इसे 'बिल्ड' के रूप में परिभाषित करते हैं। आदेश 'एक सरणी है' में अपने डोकर-लिखें .. याद रखें, Dockerrun.aws.json

2) मुझे लगता है कि (सबसे आसान ईसीएस के डेटा संग्रह स्थान का उपयोग करने के लिए है) कहीं से छवि को खींचने के लिए होगा '। तो अगर आप चाहते हैं:

"command": ["python" "manage.py" "runserver" "0.0.0.0:8000"] 

3) अपने mountpoints सही हैं, लेकिन शीर्ष पर मात्रा परिभाषा गलत है। { "नाम": "वेब", "मेजबान": { "sourcepath": "/ var/ऐप्स/वर्तमान/db" } इम नहीं 100% निश्चित है, लेकिन पथ मेरे लिए काम करता है। यदि आपके पास Dockerrun.aws.json फ़ाइल है, तो अगला/db नामक निर्देशिका है .. फिर वह माउंट स्थान होगा।

+0

मैंने 1 डॉकर बिल्ड 'और' डॉकर पुश 'का उपयोग hub.docker.com को 1 प्राप्त करने के लिए किया था), मुझे लगता है कि आपको 2 के लिए तर्कों के बीच कॉमा की आवश्यकता है)। लेकिन यह अभी भी काम नहीं कर रहा है ... क्या आप Dockerrun.aws.json साझा कर सकते हैं जो आपके लिए काम करता है और वह छवि जो आपके लिए काम करती है? – user3667089