با استفاده از کانتینر ابری آروان میتوانید هر اپلیکیشنی را با هر زبان برنامهنویسی یا میزان پیچیدگی روی زیرساخت ابری مستقر کنید. استقرار اپلیکیشن روی کانتینر ابری آروان به سه شیوه امکانپذیر است:
- تبدیل مستقیم سورسکد موجود در گیتهاب یا گیتلب به ایمیج قابل اجرا (S2I)
- استفاده از فرمت داکرایزشدهی اپلیکیشن و یا ایمیجهای رسمی داکرهاب
- نوشتن فایل منیفست کوبرنتیز
در این آموزش قصد داریم به شیوهی استقرار نرمافزار با ایمیج داکر بپردازیم و یک اپلیکیشن فرانتاند Vue.js را روی زیرساخت ابری مستقر کنیم.
استقرار ایمیج داکر
پیش نیاز:
برای نصب داکر میتوانید از این لینک استفاده و متناسب با سیستمعامل خود داکر را نصب کنید.
در این بخش اپلیکیشنی را که ساختیم بهوسیلهی داکر ایمیج روی ابر مستقر میکنیم. برای این کار ابتدا باید اپ را داکرایز کرده و ایمیج داکر را در یک مخزن داکرهاب قرار دهیم و سپس کافی است نام ایمیج را در پنل آروان وارد کرده و اپلیکیشن را مستقر کنیم. برای بررسی نحوهی ساخت اپلیکیشن، میتوانید از راهنمای S2I استفاده کنید.
داکرایز کردن اپلیکیشن
برای ساخت ایمیج باید یک Dockerfile به root پروژه اضافه کنیم و دستورات زیر را به آن اضافه کنیم (لینک منبع):
# build stage FROM node:lts-alpine as build-stage #make the 'app' folder the current working directory WORKDIR /app # copy both 'package.json' and 'package-lock.json' (if available) /.COPY package*.json # install project dependencies RUN npm install # copy project files and folders to the current working directory (i.e. 'app' folder) COPY . . # build app for production with minification RUN npm run build # production stage FROM nginx:stable-alpine as production-stage COPY --from=build-stage /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]
سپس در پوشهی root پروژه، ایمیج را میسازیم:
/cd path/to/project/root docker build -t hello-vue .
برای اطمینان از درستی فرآیند، ایمیج را اجرا میکنیم:
docker run -p 8080:80 hello-vue:latest
آدرس localhost:8080 را بررسی و کانتینر ساخته شده را تست میکنیم:
اکنون این ایمیج قابل استقرار است.
ساخت اکانت و ریپوی داکرهاب و push کردن ایمیج
اگر پیش از این اکانت داکرهاب نداشتید، لازم است در داکرهاب یک اکانت بسازید. پس از ساخت اکانت، یک مخزن جدید با نام دلخواه بسازید. به طور مثال یک ریپوی عمومی به نام hellovue میسازیم:
به اکانت داکر لاگین و ایمیج را در ریپوی تعریف شده push میکنیم:
$ docker login Username: [docker hub username] Password: [docker hub password] . . . Login Succeeded $ $ docker tag hello-vue:latest hellovue:latest $ docker push [docker hub username]/hellovue:latest The push refers to repository [docker.io/something/hellovue] 55158ca1954d: Pushed d5b0419f251d: Mounted from library/nginx . . . $
پس از push کردن، میتوانید ایمیجتان را در dockerhub مشاهده کنید:
استقرار ایمیج داکر روی ابر
برای استقرار ایمیج از طریق پنل کاربری، پس از انتخاب پروژهی موردنظر در محصول کانتیر ابری، روی ساخت اپلیکیشن کلیک میکنیم. در صفحهی ساخت اپلیکیشن، ایمیج داکر و سپس ایمیج عمومی را انتخاب و نام ایمیج موجود در داکرهاب را وارد میکنیم.
در فیلد Image URL کافی است نام ایمیج موجود در داکرهاب را وارد کنیم:
مراحل بعدی استقرار اپلیکیشن در پنل کاربری ابر آروان مشابه سایر اپلیکیشنها و شیوهی s2i قابل انجام است. برای بررسی این مراحل میتوانید از راهنمای استقرار اپلیکیشن Vue.js به شیوهی s2i استفاده کنید.
پس از مدتی اپلیکیشن به حالت فعال در میآید و میتوان با استفاده از زیردامنهای که از پیش تعریف کردیم به اپلیکیشن، دسترسی داشته باشیم: