2016-06-10 17 views
5

के साथ दुःस्वप्न.जेएस सर्वर पर Nightmare.js चलाने का प्रयास कर रहा हूं। मुझे अच्छी तरह पता है कि यह लिनक्स पर हेडलेस है, और xvfb की आवश्यकता है।डॉकर

FROM node:latest 

RUN apt-get update &&\ 
    apt-get install -y \ 
    xvfb \ 
    x11-xkb-utils \ 
    xfonts-100dpi \ 
    xfonts-75dpi \ 
    xfonts-scalable \ 
    xfonts-cyrillic \ 
    x11-apps \ 
    clang \ 
    libdbus-1-dev \ 
    libgtk2.0-dev \ 
    libnotify-dev \ 
    libgnome-keyring-dev \ 
    libgconf2-dev \ 
    libasound2-dev \ 
    libcap-dev \ 
    libcups2-dev \ 
    libxtst-dev \ 
    libxss1 \ 
    libnss3-dev \ 
    gcc-multilib \ 
    g++-multilib 

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

COPY . /usr/src/app 

RUN npm install 

CMD DEBUG=nightmare* xvfb-run --server-args="-screen 0 1024x768x24" node tux.js -s hn -m create -p 11878025 

किसी भी विचार:

nightmare queuing process start +0ms 
    nightmare queueing action "useragent" +3ms 
    nightmare queueing action "goto" for https://news.ycombinator.com +2ms 
    nightmare queueing action "cookies" +1ms 
    nightmare queueing action "goto" for https://news.ycombinator.com/login +0ms 
    nightmare queueing action "type" +1ms 
    nightmare queueing action "type" +0ms 
    nightmare queueing action "click" +0ms 
    nightmare queueing action "wait" +1ms 
    nightmare queueing action "goto" for https://news.ycombinator.com/item?id=11878025 +0ms 
    nightmare queueing action "click" +0ms 
    nightmare queueing action "wait" +1ms 
    nightmare running +0ms 
    nightmare electron child process exited with code 2: undefined +25ms 

यहाँ मेरी Dockerfile है: कारण है कि मैं जब डिबग मोड में निम्न त्रुटि प्राप्त करने के लिए जारी रखने के लिए क्या मुझे समझ नहीं आता है? मदद की बहुत सराहना की जाएगी।

+0

आप दुःस्वप्न का किस संस्करण का उपयोग कर रहे हैं? – Ross

+0

क्या आप इसे DEBUG = दुःस्वप्न के साथ चला सकते हैं: *, इलेक्ट्रॉन: * और देखें कि क्या आपको कुछ उपयोगी लॉग संदेश मिलते हैं? – khattam

+0

nightmare.js (2.5.1) का नवीनतम संस्करण चला रहा है, मुझे उपरोक्त पोस्ट में निम्न आउटपुट मिलता है। –

उत्तर

2

आप क्या कर सकते हैं एक उपनिर्देशिका में अपने सभी फाइलों को डाल करने के लिए है, का कहना है कि एप्लिकेशन/और अपने Dockerfile में कार्य करें:

ADD app/ /usr/src/app/ 
अपने अनुप्रयोग फ़ोल्डर में पाठ्यक्रम env.sh नहीं होगा की

, package.json, tux.js और lib निर्देशिका

इस तरह यदि आपको और फ़ाइलों को जोड़ने की आवश्यकता है, तो आपको उन्हें अपने डॉकरफ़ाइल में मैन्युअल रूप से जोड़ना होगा।

पीएस: यह सीओपीवाई के साथ भी काम करता है

0

undefined को पढ़ने वाली त्रुटि एक संकेत है कि आप एक पैकेज खो रहे हैं। आखिरकार यदि कोई पैकेज स्थापित नहीं है तो इसे कैसे परिभाषित किया जा सकता है? इसका मतलब यह होगा कि आपने कंटेनर को सही तरीके से नहीं बनाया है और मुझे लगता है कि मैं अपराधी को देखता हूं।

RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

*COPY . /usr/src/app* 

RUN npm install 

अनुसार to the dockerfile documentation, कॉपी आदेश प्रतियां फ़ाइलों, नहीं निर्देशिका जो आप COPY . /usr/src/app के साथ निर्दिष्ट। इसके बजाय, . को * के साथ बदलने का प्रयास करें क्योंकि यह वर्तमान निर्देशिका में सभी फ़ाइलों को निर्दिष्ट करेगा जिन्हें आप docker build से शुरू करने का निर्णय लेते हैं।

+0

कोई भाग्य नहीं है। चल रहा है COPY */usr/src/app ने मेरी/उपयोगकर्ता/src/app निर्देशिका में प्रत्येक फ़ाइल (निर्देशिका नहीं) की प्रतिलिपि बनाई है। बंद करें (मुझे लगता है), लेकिन कोई भाग्य नहीं है। –

+0

क्या आप अपना एप कंटेनर का उपयोग किए बिना काम कर पाए हैं? तो बस इसे अपनी स्थानीय मशीन पर बनाकर आप सफल रहे हैं? अपूर्ण ऐप्स को डॉकर कंटेनरों में लाने का प्रयास करना एक अच्छा विचार नहीं है क्योंकि यह केवल भ्रम की एक पूरी नई परत जोड़ सकता है। मुझे संदेह है कि आपका ऐप अधूरा है लेकिन यह जानने में कोई दिक्कत नहीं है। – Jouster500

+0

स्थानीय स्तर पर महान काम करता है। वहां कोई समस्या नहीं है। यह हेडलेस पर्यावरण सेटअप और ठीक से चल रहा है - मुझे लगता है कि मुझे एक निर्भरता याद आ रही है .... बस यह सुनिश्चित न करें कि आउटपुट पर्याप्त रूप से वर्बोज़ क्यों नहीं है। –

1

ठीक है, इसलिए मुझे पता चला कि समस्या क्या थी। जाहिर है, यह मेरे डॉकरफाइल में कॉपी सिंटैक्स पसंद नहीं आया। मैं एडीडी का उपयोग कर समाप्त हुआ और यह काम किया।

ADD /lib /usr/src/app/lib 
ADD env.sh /usr/src/app 
ADD package.json /usr/src/app 
ADD tux.js /usr/src/app 
+2

आप केवल एक एडीडी निर्देश का उपयोग कर बनाई गई परतों की संख्या को सीमित कर सकते हैं: 'env.sh package.json tux.js/usr/src/app' जोड़ें –