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

قالب های Dockerfile برای فریم ورک Svelte

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

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

  1. استفاده از ایمیج های رسمی Node.js
  2. ایجاد یک کاربر غیر root برای امنیت بیشتر
  3. استفاده از متغیرهای محیطی برای انعطاف‌پذیری بیشتر
  4. بهینه‌سازی برای Svelte
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", "dev" ]
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
اطلاع
  • این Dockerfile از یک ساختار چند مرحله‌ای استفاده می‌کند: مرحله ساخت و مرحله تولید.
  • در مرحله ساخت، ما پروژه Svelte را کامپایل می‌کنیم.
  • در مرحله تولید، فایل‌های ساخته شده را به یک سرور Nginx منتقل می‌کنیم.
  • پیکربندی Nginx برای اجرای صحیح برنامه Svelte (SPA) تنظیم شده است.
  • توجه داشته باشید که در Svelte، دایرکتوری خروجی به صورت پیش‌فرض build است (به جای dist در Vue).
توجه
  • متغیر $node_version را با نسخه مورد نظر Node.js جایگزین کنید.
  • متغیر $nginx_version را با نسخه مورد نظر Nginx جایگزین کنید.
  • بسته به نیاز پروژه، می‌توانید بین npm run build و npm run dev انتخاب کنید.

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

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

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 خود را در یک محیط مشابه تولید تست کنید.
  3. Svelte Kit: اگر از Svelte Kit استفاده می‌کنید، ممکن است نیاز به تنظیمات اضافی در پیکربندی Nginx داشته باشید.