پرش به مطلب اصلی

قالب Dockerfile برای فریم ورک React.js

این راهنما به شما کمک می‌کند تا Dockerfile مناسب برای پروژه‌های مبتنی بر React.js بسازید.

نکات کلیدی برای تمام Dockerfile ها

  1. استفاده از ایمیج های رسمی Node.js
  2. ایجاد یک کاربر غیر root برای امنیت بیشتر
  3. استفاده از متغیرهای محیطی برای انعطاف‌پذیری بیشتر
  4. بهینه‌سازی برای هر فریم‌ورک خاص
FROM node:$node_version as build
ARG UID=1000
ARG GID=1000
RUN groupadd -g $GID -o app && \
useradd -g $GID -u $UID -mr -d /home/app -o -s /bin/bash app
USER app
WORKDIR /home/app
COPY --chown=app:app app/ /home/app/
RUN npm install
#CMD [ "npm", "run", "build" ] or CMD [ "npm", "run", "start" ]
FROM nginx:$nginx_version as production
COPY --from=BUILD /home/app/build/ /usr/share/nginx/html/
RUN echo 'server {\n\
listen 3000;\n\
server_name _;\n\
location / {\n\
root /usr/share/nginx/html;\n\
try_files $uri $uri/ /index.html;\n\
}\n\
location /index.html {\n\
root /usr/share/nginx/html;\n\
expires 0d;\n\
}\n\
}' > /etc/nginx/conf.d/default.conf
اطلاع
  • برای React از /home/app/build استفاده می‌شود.
  • پیکربندی Nginx مشابه است، که برای برنامه‌های SPA بهینه شده است.
توجه
  • اطمینان حاصل کنید که $node_version و $nginx_version را با نسخه‌های مناسب جایگزین کرده‌اید.
  • توجه داشته باشید که مسیر خروجی ساخت React (/home/app/build) با Vue.js متفاوت است.

بیلد و اجرا کردن داکر فایل

برای بیلد کردن داکر فایل و ساخت ایمیج از دستور

docker build -t [ProjectName] .
  • t- : دادن برچسپ و نام مخصوص برای پروژه

و سپس برای اجرای آن:

docker run -p outport:inport[3000] --name=container-name -d [ProjectName]
  • p- : تعیین پورت برای اجرای پروژه
  • outport : پورتی خارجی
  • inport : پورت داخلی پروژه که در داکر فایل تعیین کرده اید
  • name-- : تعیین نام کانتینر
  • d- : اجرای کانتینر در حالت بدون نمایش
توجه
  1. امنیت: همیشه از آخرین نسخه‌های پایدار Node.js و Nginx استفاده کنید.
  2. تست: قبل از استقرار در محیط تولید، حتماً ایمیج Docker خود را در یک محیط مشابه تولید تست کنید.