بالنسبة لمطوري Golang، عادةً ما تكون إدارة وحدات Go وتثبيتها أمرًا سهلاً عند التعامل مع المستودعات العامة. ومع ذلك، تصبح الأمور أكثر صعوبة عندما تحتاج إلى العمل مع وحدات Go الخاصة.
لا توفر سلسلة أدوات وحدات Go آلية مدمجة للعمل مع الوحدات الخاصة بخلاف استخدام GOPROXY الخاص، وإعدادها وصيانتها بشكل صحيح ليس خيارًا لكل مطور أو مؤسسة. تدعم بعض خدمات مستودع الحزم العمل مع وحدات Go الخاصة ولكنها بشكل عام لا توفر أفضل تجربة للمطورين.
لهذا السبب، في معظم الحالات، ينتهي بنا الأمر إلى ترتيب تكوينات Git المعقدة (.netrc أو .gitconfig) جنبًا إلى جنب مع بعض متغيرات بيئة Go لإدارة المصادقة مع مستودعاتنا الخاصة عند استخدام go get أو go install أو go mod download .
المشكلة في تكوينات Git هذه هي أنها ليست واضحة لجميع المطورين، وقد تكون غير آمنة لأنها قد تتطلب تخزين بيانات اعتماد النص العادي في نظام الملفات. تصبح هذه المشكلات أكثر إشكالية عند تكوين أنظمة CI/CD، وإنشاء صور Docker، وما إلى ذلك.
باعتبارنا مطورين قدامى لـ Golang (من العصر الذي لم تكن فيه وحدات Go موجودة أصلاً)، فقد حلمنا دائمًا بوقت يكون فيه العمل مع مكتبات Go الخاصة سهلاً وقويًا مثل العمل مع المكتبات العامة.
تخيل تطوير مكتبات Go الخاصة ودفعها إلى GitHub، واحصل على الفور على التغييرات الجديدة من الكود المصدري لمشروعك عن طريق تعيين متغير البيئة GOPROXY فقط. لا توجد تكوينات Git صعبة وغير آمنة، ولا توجد صيانة GOPROXY ذاتية الاستضافة، ولا توجد مسارات عمل نشر معقدة وعرضة للأخطاء، ونفس الإعداد لجهاز التطوير المحلي الخاص بك، وDockerfile، وبيئة CI/CD.
رحب بـ goproxy.dev، وهي خدمة GOPROXY خاصة تتكامل مع GitHub لتزويدك بتثبيت وحدات Go الخاصة بسلاسة.
ما عليك سوى تسجيل الدخول إلى goproxy.dev باستخدام حسابك على GitHub، ومنح حق الوصول إلى المستودعات الخاصة التي ستستخدمها، وتصدير متغيرات البيئة GOPROXY وGONOSUMDB.
export [email protected],proxy.golang.org,direct export GONOSUMDB=github.com/your-organization
يمكن تعيين متغيرات بيئة Go مباشرة من تكوين Shell الخاص بك (.zshrc، .bashrc، وما إلى ذلك) أو باستخدام go env -w.
ثم يمكنك تشغيل أوامر go المعتادة لتثبيت وتنزيل الوحدات الخاصة بك.
go get github.com/your-organization/[email protected] go install github.com/your-organization/go-module/cmd ... go mod download
يتطلب التكامل مع goproxy.dev إعداد متغيرين للبيئة فقط. أفضل طريقة للقيام بذلك أثناء إنشاء Docker هي استخدام ميزة أسرار بناء Docker.
داخل ملف Dockerfile الخاص بك:
COPY go.mod go.sum ./ RUN --mount=type=secret,id=GOPROXY \ GOPROXY=$(cat /run/secrets/GOPROXY) \ GONOSUMDB=github.com/your-organization \ go mod download RUN go build .
والجري:
GOPROXY="[your GOPROXY value]" docker build --secret id=GOPROXY
ما عليك سوى تكوين سر لإجراءات GitHub الخاصة بك التي تحتوي على عنوان URL الخاص بـ GOPROXY واستخدامه من سير العمل الخاص بك:
jobs: build: - run: | go mod download go build . env: GOPROXY: ${{ secrets.PRIVATE_GOPROXY }} GONOSUMDB: github.com/your-organization
مع goproxy.dev، ستتمتع بأفضل تجربة للمطورين عند استخدام المكتبات باستخدام Go. سواء كنت تعتمد على مكتبات عامة مفتوحة المصدر أو وحدات خاصة من مؤسستك، سيكون لديك سير عمل موحد: قم بإعداد متغير بيئة GOPROXY الخاص بك، واحصل على التبعيات لإصدار معين، أو فرع Git، أو الالتزام.
تعرف على المزيد وابدأ مع goproxy.dev اليوم من خلال الاشتراك في الإصدار التجريبي المجاني لمدة 14 يومًا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3