ค้นหาเว็บไซต์

javascript - ฉันจะทำการรีโหลดการเปลี่ยนแปลงแบบเรียลไทม์โดยใช้ Docker และ Angular ได้อย่างไร?


ฉันสามารถทำการรีโหลดการเปลี่ยนแปลงแบบเรียลไทม์โดยใช้ Docker และ Angular 4 ได้อย่างไร? ตอนนี้ฉันต้องสร้างคอนเทนเนอร์ใหม่เพื่อรีโหลดการเปลี่ยนแปลง ฉันรู้ว่ามันเป็นไปได้ แต่ไม่มีวิธีใดที่พบทางอินเทอร์เน็ตที่ใช้ได้ผลกับฉัน ฉันจะซาบซึ้งในความช่วยเหลือ

docker-compose.yml:

version: '3'

services:
  db:
    image: postgres
  django:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
  angular:
    build: frontend
    ports:
      - "4200:4200"
    depends_on:
      - django

Dockerfile จาก frontend:

Create image based on the official Node 6 image from dockerhub
FROM node:6

Create a directory where our app will be placed
RUN mkdir -p /usr/src/app

Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app

Copy dependency definitions
COPY package.json /usr/src/app

Install dependecies
RUN npm install

Get all the code needed to run the app
COPY . /usr/src/app

Expose the port the app runs in
EXPOSE 4200

Serve the app
CMD ["npm", "start"]

คำตอบ #1

ในการกำหนดค่าปัจจุบันของคุณ คุณจะคัดลอกไฟล์แอปของคุณไปยังคอนเทนเนอร์เฉพาะตอนสร้างเท่านั้น ดังนั้นจึงทำเพียงครั้งเดียว (COPY . /usr/src/app)

ผมขอแนะนำให้สร้างลิงก์โวลุ่มไปยังไดเรกทอรีในเครื่องของคุณและใช้ตัวตรวจสอบการเปลี่ยนแปลงไฟล์อย่าง nodemon เพื่อให้มันสามารถติดตามการเปลี่ยนแปลงใด ๆ ที่เกิดขึ้นและรีสตาร์ทแอปของคุณตามนั้น โดยสมมติว่าคุณไม่จำเป็นต้องใช้สคริปต์การสร้างใด ๆ เช่น webpack/gulp/grunt ในการรัน