मैं एक डॉकटर कंटेनर स्थापित कर रहा हूं जो एक nginx सर्वर पर मेरे कोणीय 5 एप्लिकेशन की सेवा करेगा, निम्नलिखित यह लेख

लेख इस डॉकरफाइल का प्रस्ताव करता है:

# Stage 0, based on Node.js (for npm) to build and compile the Angular application.
FROM node:8.11.2 as node
WORKDIR /app
COPY package.json /app/
RUN npm install
COPY ./ /app/

ARG env=prod
# For Angular 6: ARG conf=production
RUN npm run build -- --prod --environment $env
# For Angular 6: RUN npm run build --configuration $conf

# Stage 1, based on Nginx, to have only the compiled app, ready for production with Nginx
FROM nginx:1.15
COPY --from=node /app/dist/ /usr/share/nginx/html
COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

मैं सोच रहा था: निम्नलिखित क्यों शामिल नहीं हैं?

  • एक पोर्ट एक्सपोज़िंग इंस्ट्रक्शन (जैसे EXPOSE 80), और
  • एक nginx रन कमांड (जैसे RUN /usr/bin/nginx)

लेख किसी अन्य तरीके से nginx सर्वर शुरू करने के बारे में बात नहीं करता है।

1
Sander Vanden Hautte 6 जून 2018, 12:05

2 जवाब

सबसे बढ़िया उत्तर

एक पोर्ट एक्सपोज़िंग इंस्ट्रक्शन (जैसे EXPOSE 80)

EXPOSE निर्देश किसी और चीज से ज्यादा दस्तावेज है। nginx छवि के लिए दस्तावेज़ आपको बताता है कि जब आप कंटेनर को -p 80:80, जिसके लिए EXPOSE निर्देश की आवश्यकता नहीं है। EXPOSE 80 आपको उसी उद्देश्य के लिए -P का उपयोग करने की अनुमति देगा।

एक nginx रन कमांड (जैसे RUN /usr/bin/nginx)

nginx इमेज आपके लिए यह काम करती है : )

1
Jacob 6 जून 2018, 12:29

चूंकि आप nginx:1.15 का उपयोग कर रहे हैं, इसलिए इसका डॉकरफाइल:

...

EXPOSE 80

STOPSIGNAL SIGTERM

CMD ["nginx", "-g", "daemon off;"]
1
pzaenger 6 जून 2018, 12:10