استقرار برنامه Docker در لیارا


در ابتدا، پس از ساخت برنامه بایستی تمام فایل‌ها و پوشه‌هایی که قصد ندارید در لیارا آپلود شوند را، از پروژه پاک کنید. به عنوان مثال، اگر که برنامه‌تان مبتنی بر Python باشد، باید پوشه‌ venv. و اگر برنامه‌تان مبتنی بر NodeJS است، باید دایرکتوری node_modules را از پروژه خود پاک کنید؛ چرا که لیارا در حین فرایند استقرار، آن‌ها را برای شما ایجاد خواهد کرد. به صورت کلی، اگر که در پروژه خود فایلی به نام gitignore. یا dockerignore. دارید، کافیست تا فایل‌های و دایرکتوری‌های اشاره شده در این فایل را، از پروژه خود پاک کنید.

همچنین، پروژه شما باید شامل یک فایل به نام Dockerfile باشد؛ لیارا، در حین فرایند استقرار، به صورت خودکار این فایل را پیدا می‌کند و در ادامه، برنامه‌تان در سرورهای لیارا build می‌شود و image نهایی در رجیستری خصوصی شما، در لیارا، ذخیره خواهد شد. به عنوان مثال، اگر که برنامه‌تان مبتنی بر فریم‌ورک Golang است، می‌توانید قطعه کد زیر را در Dockerfile، قرار دهید:

کپی
# Use the official Golang image as the base image
FROM golang:latest
        
# Set the working directory inside the container
WORKDIR /app

# Copy the local code to the container
COPY . .

# Download Go modules
RUN go mod download

# Build the Go application
RUN go build -o main .

# Expose port 8080 to the outside world
# EXPOSE 8080

# Command to run the executable
CMD ["./main"]

در ادامه به ساختار Dockerfile فوق، پرداخته شده است:

۱

با استفاده از دستور FROM golang:latest، image رسمی golang به عنوان base image تنظیم می‌شود و تگ latest باعث می‌شود تا برنامه از آخرین نسخه golang استفاده کند.

۲

دستور WORKDIR /app مسیر کاری داخل container را به دایرکتوری app تنظیم می‌کند. در واقع app همان دایرکتوری است که که کد برنامه ما در آنجا کپی می‌شود و دستورات بعدی در آن اجرا می‌شوند.

۳

دستور . . COPY محتوای دایرکتوری که Dockerfile در آن قرار دارد را به دایرکتوری app درون container کپی می‌کند. این دستور این فرض را دارد که کد برنامه شما در همان دایرکتوری Dockerfile قرار دارد.

۴

دستور RUN go mod download ماژول‌های go که در فایل go.mod تعریف شده‌اند را دانلود می‌کند.

۵

دستور . RUN go build -o main برنامه golang شما را اجرا می‌کند. پرچم o- نام فایل خروجی را به main تنظیم می‌کند و نقطه‌ای که در انتهای دستور قرار دارد؛ نشان‌دهنده این است که کد منبع در دایرکتوری فعلی قرار دارد.

۶

دستور CMD ["./main"] دستوری را که هنگام شروع کانتینر اجرا می‌شود، مشخص می‌کند.

شما می‌توانید با استفاده از دستور EXPOSE پورتی که برنامه توسط آن به درخواست کاربران گوش می‌دهد را مشخص کنید. البته چون که در حین استقرار، لیارا از شما port برنامه را می‌پرسد بنابراین برای استقرار برنامه‌های داکرایز شده در لیارا، نیازی به نوشتن این دستور در Dockerfile نیست.

در ادامه، بایستی پوشه پروژه خود را درون یک فایل zip قرار بدهید؛ سپس در برنامه خود، بر روی گزینه استقرار جدید کلیک کرده؛ فایل zip را بکشید و در باکس آپلود تعبیه شده، رها کنید تا وارد مرحله بعدی استقرار شوید:

deploy app using console

پس از آپلود پروژه، باید شخصی‌سازی‌های پروژه را در برنامه خود، لحاظ کنید:

build app on liara

در انتها، به صورت مستقیم به صفحه تاریخچه برنامه هدایت می‌شوید که می‌توانید لاگ‌های مربوط به استقرار را در آن، مشاهده بفرمایید.

در هر برنامه داکر در لیارا، شما می‌توانید فقط پورت یک وب‌سرور با پروتکل HTTP را Expose کنید. به عنوان مثال، پورت یک دیتابیس، خارج از شبکه خصوصی، در دسترس نیست و تنها در بین برنامه‌های موجود در شبکه خصوصی، قابل دسترسی است.

پس از استقرار برنامه می‌توانید رویدادها و گزارشات مربوط به برنامه را بررسی کنید.