2016-08-04 13 views
7

के साथ "रिएक्ट ऐप बनाएं" मैं सोच रहा था कि किसी को डॉकर के साथ क्रिएट-रिएक्ट-एप का उपयोग करके कोई अनुभव है या नहीं।डॉकर

from node 
RUN mkdir /src 
WORKDIR /src 
ADD package.json /src/package.json 
RUN npm install 
EXPOSE 3000 
CMD [ "npm", "start" ] 

और फिर जैसे एक डोकर-लिखें फ़ाइल का उपयोग किया:

app: 
    volumes: 
    - "./app:/src" 
    ports: 
    - "3000:3000" 
    - "35729:35729" 
    build: ./app 

यह मैं कंटेनर शुरू करने और एप्लिकेशन देखने की अनुमति मैं इसे की तरह एक Dockerfile के साथ स्थापित प्राप्त करने में सक्षम था। हालांकि घुड़सवार वॉल्यूम और वेबपैक में फ़ाइलों को सहेजते समय लाइवरेलोड काम नहीं करता था। Src निर्देशिका में कई .json.gzip फ़ाइलों को बनाया गया।

यह सही तरीके से काम करने के लिए कोई सुझाव?

+1

मुझे लगता है कि डोकर क्या आप करना चाहते हैं के लिए सही उपकरण नहीं है। केवल लाइव रीलोडिंग और अन्य सुविधाओं के साथ आप मशीन पर विकसित करें और रिलीज संस्करण के लिए या स्वचालित परीक्षण के लिए कंटेनर/छवियां बनाएं ... यह स्पष्ट नहीं है कि आपको विकास के लिए डॉकर की आवश्यकता क्यों है ... – aholbreich

+0

यदि आप हैं तो लाइवरेलोड काम करना चाहिए मैक के लिए डॉकर का उपयोग करना, या लिनक्स पर डॉकर का उपयोग करना। यदि आप अभी भी डॉकर टूलबॉक्स (वीएम के साथ) का उपयोग कर रहे हैं तो यह बताया गया है कि फ़ाइल देखने में अक्सर काम नहीं होता है। – dnephin

+0

@ डेनफिन मैक के लिए डॉकर पर स्विच की गई टिप के लिए धन्यवाद और सबकुछ बढ़िया काम करता है। –

उत्तर

5

हाँ, जैसा कि एहोल्ब्रिच का उल्लेख है, मैं npm install/npm start स्थानीय रूप से विकास के लिए अपनी मशीन पर उपयोग करता हूं, क्योंकि यह इतना आसान है। यह शायद docker-compose, बढ़ते वॉल्यूम इत्यादि के साथ भी संभव है, लेकिन मुझे लगता है कि यह स्थापित करने के लिए थोड़ा सा हो सकता है।

तैनाती के लिए आप आसानी से डॉकरफ़ाइल का उपयोग कर सकते हैं।

"scripts": { 
    "start": "react-scripts start", 
    "start:prod": "pushstate-server build", 
    "build": "react-scripts build", 
    "test": "react-scripts test --env=jsdom", 
    "eject": "react-scripts eject" 
}, 

आप के साथ अपने सीआई सेवा पर परीक्षण चला सकते हैं::

FROM node:6.9 

# Create app directory 
RUN mkdir -p /src/app 
WORKDIR /src/app 

# to make npm test run only once non-interactively 
ENV CI=true 

# Install app dependencies 
COPY package.json /src/app/ 
RUN npm install && \ 
    npm install -g pushstate-server 

# Bundle app source 
COPY . /src/app 

# Build and optimize react app 
RUN npm run build 

EXPOSE 9000 

# defined in package.json 
CMD [ "npm", "run", "start:prod" ] 

आप अपने package.json को start:prod विकल्प जोड़ने की जरूरत है: यहाँ एक उदाहरण Dockerfile मैं उपयोग कर रहा हूँ है

docker run <image> npm test 

इस डोकर कंटेनर स्थानीय स्तर के रूप में अच्छी तरह से चल यकीन है कि चीजों को काम करने के लिए के रूप में उम्मीद से आप को रोकने के लिए कुछ भी नहीं है।

6

मैंने हाल ही में हैलो-डॉकर-रिएक्शन नामक एक छोटी परियोजना बनाई है जो ओप की तलाश में है।

यह डॉकर-रचना, निर्माण-प्रतिक्रिया-ऐप, यार्न, एक नोड छवि, और एक छोटी प्रविष्टि स्क्रिप्ट के साथ बनाया गया है।

लाइव रीलोड काम बेकार ढंग से और मुझे अभी तक कोई समस्या नहीं मिली है।

https://github.com/lopezator/hello-docker-react

+1

यह सेटअप पूरी तरह से काम करता है – Dmitry