go

پلتفرم Golang

(Golang Platform)

فهرست عناوین:

ویدیوی آموزشی استقرار با مرورگر

در صورتی که تمایلی به خواندن آموزش متنی ندارید می‌توانید ویدیوی آموزشی زیر ‌را مشاهده کنید.

پروژه و کدهای مورد استفاده در ویدیوی فوق در اینجا قابل مشاهده و دسترسی هستند.

چهار گام استقرار برنامه با مرورگر

توجه کنید که برنامه‌ی golang شما حتماً باید داکرایز شده باشد و در مسیر اصلی پروژه یک Dockerfile وجود داشته باشد.

گام اول) کافیست به بخش ایجاد برنامه‌ها در لیارا بروید و با انتخاب پلتفرم Docker و نوشتن شناسه برنامه‌ی موردنظرتان و در نهایت انتخاب پلن، برنامه خود را ایجاد کنید. برای نمونه، ما در این آموزش برای برنامه آزمایشی‌مان، شناسه golang-starter را انتخاب کردیم.

گام دوم) در این گام، بایستی پوشه پروژه خود را حتماً درون یک فایل با فرمت zipقرار دهید؛ سپس فایل zip را کشیده و در مرورگر رها کنید؛ یا می‌توانید بر روی گزینه انتخاب فایل کلیک کرده و فایل zip مد نظر خود را انتخاب کنید.

گام سوم) پس از اینکه فایل zip پروژه‌تان به صورت کامل در لیارا آپلود شد، به صفحه جدیدی هدایت می‌شوید؛ در این صفحه در ابتدا، باید پورتی را وارد کنید که برنامه‌تان در آن به درخواست کاربران listen می‌کند یا اصطلاحاً گوش می‌دهد. مقدار این پورت معمولاً در برنامه‌های golang بر روی 8080 تنظیم می‌شود.

  • تنظیمات دیسک‌ها: اگر که در برنامه خود، دیسک تعریف کردید؛ می‌توانید در این بخش، آن را به برنامه خود متصل کنید.
  • تنظیمات build: در این بخش می‌توانید موقعیت build برنامه خود را مشخص کنید.

گام چهارم و پایانی) در نهایت، کافیست که بر روی گزینه شروع عملیات استقرار کلیک کنید تا استقرار برنامه‌تان آغاز شود.

بعد از انجام گام‌های قبلی، لیارا به برنامه شما یک زیردامنه رایگان اختصاص می‌دهد که به وسیله آن می‌توانید مطمئن شوید که برنامه‌ی‌تان به صورت صحیح به بستر لیارا منتقل شده است یا خیر. این آدرس بر اساس شناسه برنامه‌ی شما است، برای نمونه:

https://golang-starter.liara.run

ساختار Dockerfile

از آنجایی که برای استقرار برنامه‌های 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"]

در ابتدا با استفاده از دستور 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 پورتی که برنامه توسط آن به درخواست کاربران listen می‌کند را مشخص کنید. البته چون که در حین استقرار، لیارا از ما port برنامه را می‌پرسد بنابراین برای استقرار برنامه‌های داکرایز شده در لیارا، نیازی به نوشتن این دستور در Dockerfile نیست.

متوجه شدم، برو گام بعدی!
;