-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
e631a99
commit 3ace1f0
Showing
10 changed files
with
545 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
import Layout from "@/components/Layout"; | ||
import Button from "@/components/Common/button"; | ||
import Section from "@/components/Common/section"; | ||
import Alert from "@/components/Common/alert"; | ||
import Tabs from "@/components/Common/tab"; | ||
import Step from "@/components/Common/step"; | ||
import Card from "@/components/Common/card"; | ||
import Important from "@/components/Common/important"; | ||
import Highlight from "react-highlight"; | ||
import Link from "next/link"; | ||
import NextPage from "@/components/Common/nextpage"; | ||
|
||
<Layout> | ||
# استقرار برنامههای ArangoDB | ||
<hr className="mb-2" /> | ||
|
||
<div className="h-4" /> | ||
<a href="https://arangodb.com/" className="blue-link">ArangoDB</a> یک پایگاه داده چند مدلی است که از مدلهای مختلف داده مانند اسناد، گرافها و کیوالیو پشتیبانی میکند. این پایگاه داده قابلیت اجرای پرسوجوهای پیچیده را از طریق زبان پرسوجوی AQL فراهم میکند. ArangoDB به دلیل انعطافپذیری، مقیاسپذیری و عملکرد بالا در بسیاری از برنامههای کاربردی مورد استفاده قرار میگیرد. همچنین از ویژگیهای مانند ACID و توزیعشدگی پشتیبانی میکند که آن را برای کاربردهای تجاری و بزرگ مناسب میسازد. | ||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div className="h-2" /> | ||
|
||
شما میتوانید برنامههای ArangoDB خود را با <a href="../how-tos/create-app" className="blue-link">ایجاد برنامههای Docker</a> در لیارا، مستقر کنید. | ||
برای اینکار، کافیست تا | ||
در Local یک دایرکتوری با نام دلخواه بسازید، وارد دایرکتوری شوید و در آن یک فایل به نام <Important>liara.json</Important> ایجاد کنید و قطعه کد زیر را در آن قرار دهید: | ||
<div className="h-2" /> | ||
<div dir='ltr'> | ||
<Highlight className="json"> | ||
{`{ | ||
"image": "arangodb/arangodb:3.12.0.2", | ||
"port": 8529, | ||
"disks": [ | ||
{ | ||
"name": "arangodb-data", | ||
"mountTo": "/var/lib/arangodb3" | ||
}, | ||
{ | ||
"name": "arangodb-config", | ||
"mountTo": "/etc/arangodb3" | ||
} | ||
] | ||
}`} | ||
</Highlight> | ||
</div> | ||
<div className="h-2" /> | ||
|
||
در ادامه، طبق <a href="../../details/envs" className="blue-link">مستندات تنظیم متغیرهای محیطی</a>، متغیر محیطی زیر را با مقدار رمزی قوی؛ به برنامه داکر خود، اضافه کنید: | ||
|
||
<div className="h-2" /> | ||
<div dir='ltr'> | ||
<Highlight className="bash"> | ||
{`ARANGO_ROOT_PASSWORD=secure-password`} | ||
</Highlight> | ||
</div> | ||
<div className="h-2" /> | ||
سپس، طبق <a href="../../disks/create" className="blue-link">مستندات ساخت دیسک</a>، دو دیسک با نامهای <Important>arangodb-data</Important> و <Important>arangodb-config</Important> با میزان فضای مورد نیاز، ایجاد کنید. | ||
در نهایت نیز، کافیست تا در جایی که فایل <Important>liara.json</Important> قرار دارد، دستور زیر را اجرا کنید تا برنامهتان در لیارا، مستقر شود: | ||
|
||
<div className="h-2" /> | ||
<div dir='ltr'> | ||
<Highlight className="bash"> | ||
{`liara deploy`} | ||
</Highlight> | ||
</div> | ||
|
||
<div className="h-2" /> | ||
<Alert variant="info"> | ||
<p> | ||
پس از استقرار موفق، دیتابیس در <a href="../../details/private-network" className="blue-link">شبکه خصوصی</a> و بر روی پورت 8592 قابل دسترسی است. | ||
</p> | ||
</Alert> | ||
|
||
<Alert variant="info"> | ||
<p> | ||
برای ورود به پنل ادمین دیتابیس، میتوانید از نام کاربری <Important>root</Important> و پسوردی که تنظیم کردهاید، استفاده کنید. | ||
</p> | ||
</Alert> | ||
|
||
</Layout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
import Layout from "@/components/Layout"; | ||
import Button from "@/components/Common/button"; | ||
import Section from "@/components/Common/section"; | ||
import Alert from "@/components/Common/alert"; | ||
import Tabs from "@/components/Common/tab"; | ||
import Step from "@/components/Common/step"; | ||
import Card from "@/components/Common/card"; | ||
import Important from "@/components/Common/important"; | ||
import Highlight from "react-highlight"; | ||
import Link from "next/link"; | ||
import NextPage from "@/components/Common/nextpage"; | ||
|
||
<Layout> | ||
# استقرار برنامههای Golang | ||
<hr className="mb-2" /> | ||
|
||
<div className="h-4" /> | ||
<a href="https://go.dev/" className="blue-link">Go (یا Golang)</a> یک زبان برنامهنویسی open-source است که توسط گوگل توسعه داده شده است. این زبان طراحی شده تا کدنویسی سادهتر، سریعتر و کارآمدتر باشد و برای ساخت نرمافزارهای مقیاسپذیر و با کارایی بالا مناسب است. ویژگیهای اصلی Go شامل مدیریت حافظه خودکار و همروندی (concurrency) با استفاده از goroutines است. Go به ویژه در توسعه سرویسهای وب، ابزارهای شبکه و نرمافزارهای توزیعشده محبوب است. | ||
|
||
<div className="h-2" /> | ||
|
||
شما میتوانید برنامههای go خود را با <a href="../how-tos/create-app" className="blue-link">ایجاد برنامههای Docker</a> در لیارا، مستقر کنید. | ||
برای اینکار، کافیست تا | ||
در Local | ||
در مسیر اصلی پروژه، یک فایل به نام <Important>Dockerfile</Important>، ایجاد کنید و قطعه کد زیر را درون آن، قرار دهید: | ||
<div className="h-4" /> | ||
<div dir='ltr'> | ||
<Highlight className="docker"> | ||
{`# 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"]`} | ||
</Highlight> | ||
</div> | ||
<div className="h-2" /> | ||
<p> | ||
در ادامه به ساختار Dockerfile فوق، پرداخته شده است: | ||
</p> | ||
|
||
<Step steps={[ | ||
{ | ||
step: "۱", | ||
content: ( | ||
<> | ||
<p> | ||
با استفاده از دستور <Important>FROM golang:latest</Important>، image رسمی golang به عنوان base image تنظیم میشود و تگ <Important>latest</Important> باعث میشود تا برنامه از آخرین نسخه golang استفاده کند. | ||
</p> | ||
</> | ||
) | ||
}, | ||
{ | ||
step: "۲", | ||
content: ( | ||
<> | ||
<p> | ||
دستور <Important>WORKDIR /app</Important> مسیر کاری داخل container را به دایرکتوری <Important>app</Important> تنظیم میکند. در واقع app همان دایرکتوری است که که کد برنامه ما در آنجا کپی میشود و دستورات بعدی در آن اجرا میشوند. | ||
</p> | ||
</> | ||
) | ||
}, | ||
{ | ||
step: "۳", | ||
content: ( | ||
<> | ||
<p> | ||
دستور <Important>. . COPY</Important> محتوای دایرکتوری که <Important>Dockerfile</Important> در آن قرار دارد را به دایرکتوری <Important>app</Important> درون container کپی میکند. این دستور این فرض را دارد که کد برنامه شما در همان دایرکتوری Dockerfile قرار دارد. | ||
</p> | ||
</> | ||
) | ||
}, | ||
{ | ||
step: "۴", | ||
content: ( | ||
<> | ||
<p> | ||
دستور <Important>RUN go mod download</Important> ماژولهای go که در فایل <Important>go.mod</Important> تعریف شدهاند را دانلود میکند. | ||
</p> | ||
</> | ||
) | ||
}, | ||
{ | ||
step: "۵", | ||
content: ( | ||
<> | ||
<p> | ||
دستور <Important>. RUN go build -o main </Important> برنامه golang شما را اجرا میکند. پرچم <Important>o-</Important> نام فایل خروجی را به <Important>main</Important> تنظیم میکند و نقطهای که در انتهای دستور قرار دارد؛ نشاندهنده این است که کد منبع در دایرکتوری فعلی قرار دارد. | ||
</p> | ||
</> | ||
) | ||
}, | ||
{ | ||
step: "۶", | ||
content: ( | ||
<> | ||
<p> | ||
دستور <Important>CMD ["./main"]</Important> دستوری را که هنگام شروع کانتینر اجرا میشود، مشخص میکند. | ||
</p> | ||
</> | ||
) | ||
}, | ||
]}/> | ||
<div className="h-5" /> | ||
|
||
<Alert variant="info"> | ||
<p> | ||
شما میتوانید با استفاده از دستور <Important>EXPOSE</Important> پورتی که برنامه توسط آن به درخواست کاربران گوش میدهد را مشخص کنید. البته چون که در حین استقرار، لیارا از شما port برنامه را میپرسد بنابراین برای استقرار برنامههای داکرایز شده در لیارا، نیازی به نوشتن این دستور در <Important>Dockerfile</Important> نیست. | ||
</p> | ||
</Alert> | ||
|
||
در نهایت، کافیست با اجرای دستور زیر، برنامه خود را در لیارا، مستقر کنید: | ||
<div className="h-4" /> | ||
<div dir='ltr'> | ||
<Highlight className="docker"> | ||
{`liara deploy --platform=docker --port=8080`} | ||
</Highlight> | ||
</div> | ||
<div className="h-2" /> | ||
|
||
</Layout> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.