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

version: '3'
services:
  jump-ui-build:
    image: node:12.13.0
    volumes:
      - ~/jump-ui:/usr/local/app
    working_dir: /usr/local/app
    ports:
      - 8082:8082
    command: bash -c "npm install && npm run build:test"

  nginx:
    restart: always
    image: nginx:1.16.1
    ports: 
      - 80:80
      - 443:443
    volumes:
      - ~/jump-ui/dist:/usr/share/nginx/html
      - ~/nginx-log:/var/log/nginx
    depends_on:
      - jump-ui-build

जंप-यूआई-बिल्ड सेवा सफलतापूर्वक चलती और समाप्त होती है और जम्प-यूआई फ़ोल्डर के तहत डिस्ट फ़ोल्डर उत्पन्न करती है, लेकिन जब मैं nginx सेवा तक पहुंचने के लिए "docker exec -it" का प्रयास करता हूं और /usr/share/nginx/html पर स्विच करता हूं, यह एम्पी फ़ोल्डर है, इसलिए मुझे मैन्युअल रूप से जम्प-यूआई-बिल्ड सेवा शुरू करनी है और nginx सेवा शुरू करनी है, और यह सफलतापूर्वक तैनात है?

क्या यम स्क्रिप्ट को संशोधित करने के लिए वैसे भी है जिसे मैं सफलतापूर्वक वेब को स्वचालित रूप से बना और तैनात कर सकता हूं?

1
colapuro 28 अक्टूबर 2019, 07:20

1 उत्तर

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

आप multistage डॉकरफाइल का उपयोग कर सकते हैं:

FROM node:12.13.0
WORKDIR /usr/local/app
RUN bash -c "npm install && npm run build:test"

FROM nginx:1.16.1
COPY --from=0 /usr/local/app /usr/share/nginx/html
EXPOSE 80 443

इस तरह आप एक nginx छवि के साथ समाप्त हो जाएंगे, इसे बनाएं:

docker build -t my_image .

आपकी रचना होनी चाहिए:

nginx:
    restart: always
    image: my_image
    ports: 
      - 80:80
      - 443:443
    volumes:
      - $HOME/nginx-log:/var/log/nginx
2
LinPy 28 अक्टूबर 2019, 06:45