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 ในการรัน