نصب و راه اندازی Gitlab روی سرور شخصی با استفاده از داکر

گیت‌لب مثل هزاران سرویس دیگه خارجی ما ایرانی‌ها رو تحریم کرده و بخاطر تجربه ای که اکثرمون از این اتفاق داریم، گیت‌هاب هم الآن زیاد مورد اعتماد نیست...!چه چیزی بهتر از راه انداختن گیت‌لب روی سرور داخل شرکت خودمون، که هم کاهش ترافیک بین الملل در شرکت رو به همراه داره، و هم سرعت کانکشن بالای شبکه داخلی!بریم سر اصل مطلب، راه اندازی گیت‌لب روی داکر:اول از همه نیاز هستش که داکر رو نصب کنیم، توی این مثال من از توزیع Ubuntu استفاده می‌کنم:قدم اول پاک کردن نسخه های قبلی داکر هست:sudo apt-get remove docker docker-engine docker.io containerd runcقدم دوم اضافه کردن Repository داکر روی سرور:sudo apt-get updatesudo apt-get install ca-certificates curl gnupg lsb-releasecurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgecho &quotdeb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable&quot | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullقدم سوم دانلود و نصب انجین داکر:sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.ioبا استفاده از دستورdocker -vمطمئن می‌شیم که داکر نصب شده و بعد می‌ریم سراغ مراحل دانلود و نصب گیت‌لب:اول یک محیطی رو برای گیت‌لب می‌سازیم و اسم اون رو GITLAB_HOMEمی‌زاریم:export GITLAB_HOME=/srv/gitlabmountpointsداخل جدول بالا توضیح داده شده که کدوم فولدر و مسیر توی کانتینر داکر کدوم نقش رو بازی می‌کنه.روش اول - نصب با استفاده از خود داکر:sudo docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 256m \ gitlab/gitlab-ee:latestدر دستور بالا gitlab.example.com با FQDN شما، یا همون آدرس دامین سرور شما باید جایگزین بشه.این دستور ایمیج گیت‌لب رو از داکر دانلود و اجرا می‌کنه، همچنین پورت های 443، 80 و 22 هم به اصطلاح NAT می‌شن.همه اطلاعات سرور گیت‌لب شما هم داخل مسیرGITLAB_HOME$نوشته می‌شه .اگر از SELinux استفاده می‌کنین به جای دستور بالا از دستور پایین باید استفاده کنین:sudo docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab:Z \ --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \ --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \ --shm-size 256m \ gitlab/gitlab-ee:latestبعد از اینکه کار دانلود و اجرا تموم شد، آدرس FQDN خودتون رو داخل مرورگر بزنین و وب گیت‌لب باز می‌شه:)برای به دست آوردن پسورد ادمین اصلی، از دستور زیر استفاده کنین:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_passwordحالا می‌تونین با استفاده از نام کاربری root و پسوردی که به دست آوردین وارد پنل ادمین گیت‌لب بشین.دقت کنین که این پسورد فقط برای 24 ساعت اولیه فرایند نصب کار می‌کنه و بعد از 24 ساعت به طور اتوماتیک پاک می‌شه و دیگه بهش دسترسی نخواهید داشت.روش دوم - نصب با استفاده از docker-compose:با استفاده از docker-compose شما می‌تونین به راحتی گیت‌لب خودتون رو نصب، کانفیگ و آپدیت کنین:اولین مرحله نصب انجین داکر هستش که در مراحل بالاتر توضیح دادم، بعد از اینکه از نصب داکر مطمئن شدید، نوبت نصب docker-compose می‌رسه:sudo curl -L &quothttps://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&quot -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composesudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-composeو با استفاده از دستورdocker-compose --versionمطمئن می‌شیم که مراحل نصب رو درست رفتیم و docker-compose نصب شده و در نهایت می‌ریم سراغ نصب گیت‌لب:اول از همه یک فایل به اسم docker-compose.yml می‌سازیم که قراره کانفیگ های گیت‌لب سرور خودمون رو داخلش بنویسیم:version: '3.6' services: web: image: 'gitlab/gitlab-ee:latest' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'https://gitlab.example.com' # Add any other gitlab.rb configuration here, each on its own line ports: - '80:80' - '443:443' - '22:22' volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' shm_size: '256m'داخل کانفیگ بالا gitlab.example.com رو با FQDN خودمون جایگزین می‌کنیم.و در نهایت:docker-compose up -dو دوباره مثل مراحل نهایی نصب با استفاده از انجین داکر بعد از اینکه کار دانلود و اجرا تموم شد، آدرس FQDN خودتون رو داخل مرورگر بزنین و وب گیت‌لب باز می‌شه:)برای به دست آوردن پسورد ادمین اصلی، از دستور زیر استفاده کنین:sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_passwordحالا می‌تونین با استفاده از نام کاربری root و پسوردی که به دست آوردین وارد پنل ادمین گیت‌لب بشین.دقت کنین که این پسورد فقط برای 24 ساعت اولیه فرایند نصب کار می‌کنه و بعد از 24 ساعت به طور اتوماتیک پاک می‌شه و دیگه بهش دسترسی نخواهید داشت.