این روزها برنامه نویسان برای توسعه پروژه های خود از یه سری کتابخانه های از پیش آماده که خود نیز برنامه ای جداگانه و روی سکوهای گیت نگهداری می شوند، استفاده می کنند و در روند بیلد پروژه، این دست کتابخانه ها توسط برنامه های مدیریت وابستگی ها به پروژه اضافه و برنامه را کامل می کنند.

برنامه های مدیریت وابستگی ها در زبان های برنامه نویسی مختلف متفاوت و مختص همان زبان برنامه نویسی می باشد.
برای مثال در زبان php این برنامه نامش composer و در زبان پایتون، pip و در زبان nodejs، npn
یا yarn هستند.
برنامه نویسان، آدرس های کتابخانه ها مورد نیاز در برنامه خود را چه به صورت آدرس git و یا چه به صورت مسیر
فایل مشخص در کنار پروژه، در فایلی مخصوص به آن برنامه مدیریت وابستگی ها به صورت یک تنظیم قرار می دهند، تا
برنامه شان قابلیت انتقال به هاست های مختلف را داشته باشد.
حال برخی از این کتابخانه ها که روی git می باشند، به صورت یک repository خصوصی ایجاد و توسعه داده می شوند.
برای استفاده این دست کتابخانه ها که دسترسی به آن ها برای همه باز نمی باشد کمی کار را مشکل می کند. حال با شیوه ای
خاص لازم است تا مکانیزم مدیریت این دست کتابخانه ها را مدیریت نمود تا برنامه همچنان بتواند روند بیلد خود
را کامل نماید.
مراحل اجرا
برای ایجاد دسترسی به آن repository خصوصی در gitlab لازم است تا مراحل زیر طی شوند
تولید token
در گام اول لازم است تا برای ریپوی مورد نظر یک token با دسترسی خواند ایجاد شود.
نحوه ایجاد توکن برای پروژه به ترتیب زیر می باشد:
- به مسیر زیر رفته:
- Project → Settings → Repository → Deploy Tokens
- Name: composer
- Scopes: read_repository
- از این اطلاعات یادداشت برداری کنید
فایل composer.json
در فایل composer.json آدرس ها کتابخانه های خصوصی به صورت نمونه ارائه شده است:
"repositories": [
{
"type": "vcs",
"url": "https://code.project.com/group-a/project1.git"
},
{
"type": "vcs",
"url": "https://code.project.com/group-b/project2.git"
}
]
تنظیم فایل .gitlab-ci.yml
پیش فرض این است که اطلاعات مرحله قبلی به صورت متغییر در gitlab ذخیره شده، پس فایل .gitlab-ci.yml می تواند به
صورت زیر باشد:
stages:
- build
build_app:
stage: build
image: composer:2
variables:
COMPOSER_ALLOW_SUPERUSER: "1"
before_script:
- composer config --global gitlab-token.code.project.com "$GITLAB_TOKEN_PASS"
script:
- composer install --no-interaction --prefer-dist --no-dev
پیکربندی فایل Dockerfile
در گام بع دی به پیکربندی فایل Dockerfile می رسیم
FROM composer:2 AS builder
ARG GITLAB_TOKEN_PASS
RUN composer config --global gitlab-token.code.project.com ${GITLAB_TOKEN_PASS}
COPY composer.json composer.lock ./
RUN composer install --no-interaction --prefer-dist --no-dev
خب در این روند، با پیکربندی ای که شده، composer در فایل composer.json تمامی کتابخانه های خصوصی را به وصسله token
آن گیت دریافت و در پروزه قرار می دهد.
منابع:
- Personal access tokens - Authentication for privately hosted packages and repositories