به عنوان یه توسعهدهنده به احتمال زیاد با Git کار کردید و احتمالا کدتون رو، روی یکی از پلتفرمهای مشهور مثل GitHub یا GitLab یا Bitbucket قرار دادید؛ حالا ممکنه به دلایلی نخواید کدتونو توی اینترنت و روی این پلتفرمها قرار بدید؛ مثلا ممکنه حجم repositoryتون زیاد باشه یا تحریم اذیتتون کنه یا ...
خوبی چندتا از این پلتفرمها (مثل GitLab و Bitbucket) اینه که اینا رو میشه به صورت محلی روی سیستم یا سرورهای خودتون (اصطلاحا on-premise) نصب کرد؛ توی تجربهی شخصیم، Bitbucket خیلی امکاناتش کامل هستش اما نیاز به لایسنس داره و پیدا کردن راه دور زدن لایسنسش توی نسخههای جدیدش یه خورده سخت شده؛ در مقابل GitLab با امکانات تقریبا کافی به صورت رایگان قابل استفاده هستش؛ البته اون هم یه سری امکانات پولی داره که اگه لایسنسشو تهیه کنید میتونید از اون امکانات استفاده کنید؛ برای مقایسه نسخههای GitLab میتونید به این لینک یه سری بزنید.
نسخه رایگان GitLab معمولا، اکثر نیازهامون رو بر طرف میکنه؛ بنابراین تصمیم گرفتیم تو این مقاله در مورد نصب GitLab صحبت کنیم.
فرض بر اینه که میخوایم GitLab رو روی اوبونتو سرور بریزیم و دایره لغتمون یه مقدار لینوکسی خواهد بود؛ البته روی سیستمعاملهای دیگه به جز مسیرها و بعضی از دستورها فرق دیگهای وجود نداره.
از اونجایی که میخوایم GitLab رو با داکر نصب کنیم لازمه روی سیستممون داکر و داکر کامپوز نصب باشه؛ توی این مقاله گفتم چجوری میشه داکر و داکر کامپوز رو روی اوبونتو نصب کرد.
همچنین چون میخوایم ایمیجهای GitLab رو از dockerhub دانلود کنیم لازمه از تحریمشکن استفاده کنیم که توی این مقاله فعالسازی شکن توی اوبونتو رو توضیح دادم.
راستی حداقل رم مورد نیاز ۴ گیگ هستش؛ دیسک هم بعد از نصب روی اوبونتو سرور خام حدود ۱۰ گیگ پر میشه.
خب اول از همه برا اینکه خیلی درگیر sudo و دسترسی و اینا نشیم با زدن دستور پایین دسترسی root بگیریم:
sudo su
حالا داخل پوشه opt یه پوشه برا GitLab بسازیم:
cd /opt mkdir -p gitlab/app cd gitlab
بعد یه فایل docker-compose.yaml بسازیم و محتویاتشو این قرار بدیم:
version: "3.9" services: gitlab: container_name: 'gitlab' image: 'gitlab/gitlab-ee:latest' restart: unless-stopped hostname: 'gitlab.local' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.local:8443' gitlab_rails['gitlab_shell_ssh_port'] = 2224 gitlab_rails['lfs_check'] = false # Add any other gitlab.rb configuration here, each on its own line ports: - '8443:8443' - '2224:22' volumes: - '/opt/gitlab/app/config:/etc/gitlab' - '/opt/gitlab/app/logs:/var/log/gitlab' - '/opt/gitlab/app/data:/var/opt/gitlab' logging: driver: "json-file" options: max-size: "1g"
بعد هم دستور پایین رو بزنیم تا GitLab اجرا بشه:
docker compose up -d
اگه همه چی میزون باشه برای بار اول ایمیج GitLab دانلود میشه:
بعد با زدن این دستور میتونیم وضعیت کانتینتر gitlab رو ببینیم:
watch docker ps
که بعد از دانلود تو وضعیت starting قرار میگیره:
ممکنه بعد از چند دقیقه یه بار کانتینر ریست بشه؛ طبیعیه... تا healthy شدنش صبر کنید.
بعد از healthy شدن کانتینر میتونیم با وارد کردن آدرس سرورمون (مثلا https://192.168.230.128:8443) صفحه GitLab رو ببینیم (توجه کنید که GitLab رو روی پورت 8443 بالا آوردیم):
یورز پیشفرض root هستش؛ پسوردشم با این دستور میتونیم ببینیم:
cat /opt/gitlab/app/config/initial_root_password
خب خسته نباشید؛ GitLabمون نصب شد.
برای توضیحات بیشتر میتونید به صفحه GitLab (اینجا) مراجعه کنید؛ من هم در قسمت نظرات یا ایمیل mkay1375@gmail.com در خدمت هستم.