2015-04-14 13 views
6

पर पर्ल डॉकर कंटेनर को तैनात करना मैं एक डॉकर कंटेनर का निर्माण कर रहा हूं जो बिटबकेट से एक पर्ल/मोजोलिसी रेपो खींचता है लेकिन मुझे समस्याएं आ रही हैं।लोचदार बीनस्टॉक

# DOCKER-VERSION 0.3.4 
FROM  perl:latest 
MAINTAINER My Name [email protected] 

# Update aptitude with new repo 
RUN apt-get update 

# Install software 
RUN apt-get install -y git 
# Make ssh dir 
RUN mkdir /root/.ssh/ 

# Copy over private key, and set permissions 
ADD repo-key /root/.ssh/id_rsa 

# Create known_hosts 
RUN touch /root/.ssh/known_hosts 
# Add bitbuckets key 
RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts 

RUN curl -L http://cpanmin.us | perl - App::cpanminus 
RUN cpanm Mojolicious 

RUN cachebuster=b953b35 git clone -b branch [email protected]:org/project.git 

EXPOSE 8080 

WORKDIR project 
CMD hypnotoad script/project 

स्थानीय स्तर पर, docker build -t name/project . पर यह ठीक बनाता है और कहते हैं और,: मैं अपने Dockerfile इस तरह है "सफलतापूर्वक निर्माण किया।"

मैंने इसे रेपो-कुंजी फ़ाइल के साथ ज़िपित किया और इसे लोचदार बीनस्टॉक को खिलाया, मैंने अपलोड और तैनाती पर क्लिक किया (मैंने सफलतापूर्वक 2048 गेम नमूना तैनात किया, और इसे दोहराने की कोशिश की)।

यह Dockerrun.aws.json: No such file or directory के साथ आता है। जो मुझे लगता है वह अजीब है क्योंकि दस्तावेज कहता है कि डॉकरफाइल या डॉकरुन.ए.एस.एस.एस.एस. को अलग-अलग ज़रूरतों के लिए स्वतंत्र रूप से इस्तेमाल किया जा सकता है। लेकिन जो कुछ भी, मैं इसे एक छोटी, उम्मीद है कि अप्रासंगिक, Dockerrun.aws.json दिया था, इसलिए जैसे:

{ 
    "AWSEBDockerrunVersion": "1", 
    "Ports": [ 
     {"ContainerPort": "8080"} 
    ], 
    "Volumes": [] 
} 

यह अभी भी विफल रहता है और लॉग अब [CMD-AppDeploy/AppDeployStage0/AppDeployPreHook/04run.sh] command failed with error code 1: और आगे Docker container quit unexpectedly after launch कहा गया है।

क्या कोई मुझे इन फ़ाइलों का निवारण करने में मदद कर सकता है?

उत्तर

2

मैंने इसे समझ लिया। समस्या यह थी कि hypnotoad डिफ़ॉल्ट रूप से पृष्ठभूमि में चलता है और यह कंटेनर तुरंत मर जाता है। -f ध्वज जोड़कर, यह अग्रभूमि में चलता है और कंटेनर बनी रहती है। मैंने CMD को ENTRYPOINT पर भी स्विच किया।

#... same as above except for last line 

WORKDIR project 
ENTRYPOINT [ "hypnotoad", "-f", "./script/project" ] 

तुम अब भी किसी स्पष्ट कारण के ईबी दोनों Dockerfile और Dockerrun.aws.json को खिलाने के लिए है, लेकिन फिर भी, यह त्रुटि के बिना काम करता है।

संबंधित मुद्दे