উবার্টু লিনাক্স ব্যবহার করে ডকার ইনস্টল করা আছে। ভিএম নেই
আমি একটি ভয়েজ অ্যাপ্লিকেশন সহ একটি ডকার চিত্র তৈরি করেছি। গরম পুনরায় লোড সক্ষম করার জন্য আমি এর সাথে ডকারের ধারকটি শুরু করি:
docker run -it -p 8081:8080 -e "HOST=0.0.0.0" -v ${PWD}:/app/ -v /app/node_modules --name my-frontend my-frontend-image
এটি সূক্ষ্ম শুরু হয় এবং আমি এটি আমার হোস্ট ব্রাউজার থেকে এটি অ্যাক্সেস করতে পারি localhost:8081
। তবে আমি যখন সোর্স ফাইলগুলিতে পরিবর্তন করি এবং সেই পরিবর্তনগুলি সংরক্ষণ করি তখন আমি এফ 5 টি চাপার আগে সেগুলি আমার ব্রাউজারে প্রতিফলিত হয় না (হট রিলোডলোড কাজ করে না)।
নীচে কিছু বিশদ:
package.json
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
বিল্ড / webpack.dev.conf.js
devServer: {
clientLogLevel: 'warning',
...
hot: true,
...
watchOptions: {
//poll: config.dev.poll,
//aggregateTimeout: 500, // delay before reloading
poll: 100 // enable polling since fsevents are not supported in docker
}
ওয়াচঅপশনগুলি সংশোধন করার চেষ্টা করা হয়েছে তবে এর কোনও প্রভাব নেই।
সম্পাদনা করুন:
নীচের উত্তরের উপর ভিত্তি করে আমি পাশ করার চেষ্টা করেছি: CHOKIDAR_USEPOLLING=true
পরিবেশের পরিবর্তনশীল হিসাবে ডকার রান:
docker run -it -p 8081:8080 -e "HOST=0.0.0.0" -e "CHOKIDAR_USEPOLLING=true" -v ${PWD}:/app/ -v /app/node_modules --name my-frontend my-frontend-image
তবে এটি কার্যকর হয়নি - এখনও আমার পরিবর্তনগুলি পুনরায় লোড করতে সক্ষম নয় able প্রদত্ত লিঙ্কে এটিও বলে:
আপডেট / স্পষ্টকরণ: এই সমস্যাটি তখনই ঘটে যখন কোনও ভিএম এর ভিতরে আপনার ডকার ইঞ্জিনটি চালানো হয়। আপনি যদি ডকার এবং কোডিং উভয়ের জন্য লিনাক্সে থাকেন তবে আপনার এই সমস্যা নেই।
সুতরাং উত্তরটি আমার সেটআপের জন্য প্রযোজ্য বলে মনে করবেন না - আমি আমার মেশিনে উবুন্টু লিনাক্স চালাচ্ছি যেখানে আমি ডকার ইনস্টল করেছি। সুতরাং কোনও ভিএম সেটআপ নেই।
আরেকটি আপডেট - পোর্ট ম্যাপিং পরিবর্তনের উপর নীচের মন্তব্যের ভিত্তিতে:
# Hot reload works!
docker run -it -p 8080:8080 -e "HOST=0.0.0.0" -v ${PWD}:/app/ -v /app/node_modules --name my-frontend my-frontend-image
# Hot reload fails!
#docker run -it -p 8081:8080 -e "HOST=0.0.0.0" -v ${PWD}:/app/ -v /app/node_modules --name my-frontend my-frontend-image
সুতরাং আমি যদি গরম পুনরায় লোডের 8080:8080
পরিবর্তে মানচিত্রটি বন্দর করি 8081:8080
! লক্ষ্য করুন যে অ্যাপ্লিকেশনটি উভয় ক্ষেত্রেই আসে যখন আমি localhost
পূর্ববর্তী পোর্টগুলিতে আমার হোস্ট ব্রাউজারে এটি ব্যবহার করি । এটি কেবলমাত্র হট লোড কেবল তখনই কাজ করে যখন আমি আমার হোস্টে 8080 এ অ্যাপ্লিকেশনটি ম্যাপ করি।
কিন্তু কেন??
এখন যদি আমি করি:
PORT='8081'
docker run -it -p "${PORT}:${PORT}" -e "HOST=0.0.0.0" -e "PORT=${PORT}" -v ${PWD}:/app/ -v /app/node_modules --name my-frontend my-frontend-image
হট রিলোডলোড অবশ্যই কাজ করে। তবে এখনও নিশ্চিত নয় কেন আমি অভ্যন্তরীণ পাত্রে পোর্টটি 8080 থেকে 8081 পর্যন্ত হোস্টে ম্যাপ করতে পারি না।
BTW; আমি vue-cli-service serve
পরিবর্তে ব্যবহার করলে সমস্যাটি আমি মোটেও দেখতে পাচ্ছি না - সমস্ত কিছু বাক্স থেকে বেরিয়ে আসে ।
-p 8080:8080 -p 8081:8081