इस पेज पर, Basel कंटेनर के कॉन्टेंट के बारे में जानकारी दी गई है. इसके अलावा, उन्हें बनाने का तरीका भी बताया गया है Basel का इस्तेमाल करके abseil-cpp प्रोजेक्ट बेज़ल कंटेनर में रखा जा सकता है और इस प्रोजेक्ट को सीधे को सीधे माउंट करने की सुविधा के साथ बेज़ल कंटेनर का इस्तेमाल करके, होस्ट मशीन से कॉपी किया जा सकता है.
डायरेक्ट्री माउंटिंग की मदद से, अपनी होस्ट मशीन से Abseil प्रोजेक्ट बनाएं
इस सेक्शन में दिए गए निर्देशों की मदद से, बेज़ल कंटेनर का इस्तेमाल करके बनाया जा सकता है जिसमें सोर्स को होस्ट एनवायरमेंट में चेक आउट किया गया हो. कंटेनर शुरू हो गया है हर बिल्ड कमांड के लिए इस्तेमाल किया जा सकता है. बिल्ड के नतीजों को आपके होस्ट की कैश मेमोरी में सेव किया जाता है ताकि सभी बिल्ड में उनका फिर से इस्तेमाल किया जा सके.
प्रोजेक्ट को अपनी होस्ट मशीन की किसी डायरेक्ट्री में क्लोन करें.
git clone https://github.com/abseil/abseil-cpp.git /src/workspace
ऐसा फ़ोल्डर बनाएं जिसमें कैश मेमोरी में सेव किए गए नतीजे, सभी बिल्ड के साथ शेयर किए जा सकेंगे.
mkdir -p /tmp/build_output/
प्रोजेक्ट बनाने और उसे बनाने के लिए, Bagel कंटेनर का इस्तेमाल करें आउटपुट आपकी होस्ट मशीन के आउटपुट फ़ोल्डर में उपलब्ध होते हैं.
docker run \
-e USER="$(id -u)" \
-u="$(id -u)" \
-v /src/workspace:/src/workspace \
-v /tmp/build_output:/tmp/build_output \
-w /src/workspace \
gcr.io/bazel-public/bazel:latest \
--output_user_root=/tmp/build_output \
build //absl/...
--config=asan|tsan|msan
बिल्ड जोड़कर, सैनिटाइज़र की मदद से प्रोजेक्ट बनाएं
AddressSanitizer (asan), ThreadSanitizer (tsan) को चुनने के लिए फ़्लैग करें या
Memory Sanitizer (msan) इस्तेमाल करें.
docker run \
-e USER="$(id -u)" \
-u="$(id -u)" \
-v /src/workspace:/src/workspace \
-v /tmp/build_output:/tmp/build_output \
-w /src/workspace \
gcr.io/bazel-public/bazel:latest \
--output_user_root=/tmp/build_output \
build --config={asan | tsan | msan} -- //absl/... -//absl/types:variant_test
कंटेनर के अंदर से Abseil प्रोजेक्ट बनाएं
इस सेक्शन में दिए गए निर्देशों की मदद से, बेज़ल कंटेनर का इस्तेमाल करके बनाया जा सकता है कंटेनर के अंदर के सोर्स के साथ. शुरुआत में कंटेनर को शुरू करके अपने डेवलपमेंट वर्कफ़्लो के बारे में और कंटेनर में, बिल्ड के नतीजे कैश मेमोरी में सेव किए जाएंगे.
बेज़ल कंटेनर में शेल शुरू करें:
docker run --interactive --entrypoint=/bin/bash gcr.io/bazel-public/bazel:latest
हर कंटेनर का आईडी यूनीक होता है. नीचे दिए गए निर्देशों में, कंटेनर 5a99103747c6 था.
प्रोजेक्ट का क्लोन बनाएं.
root@5a99103747c6:~# git clone https://github.com/abseil/abseil-cpp.git && cd abseil-cpp/
नियमित रूप से बिल्ड करें.
root@5a99103747c6:~/abseil-cpp# bazel build //absl/...
--config=asan|tsan|msan
को जोड़कर, सैनिटाइज़र की मदद से प्रोजेक्ट बनाएं
AddressSanitizer (asan), ThreadSanitizer (tsan) को चुनने के लिए फ़्लैग बनाएं या
Memory Sanitizer (msan) इस्तेमाल करें.
root@5a99103747c6:~/abseil-cpp# bazel build --config=--config={asan | tsan | msan} -- //absl/... -//absl/types:variant_test
बेज़ल कंटेनर को एक्सप्लोर करें
अगर आपने पहले से ऐसा नहीं किया है, तो बेज़ल कंटेनर के अंदर एक इंटरैक्टिव शेल शुरू करें.
docker run -it --entrypoint=/bin/bash gcr.io/bazel-public/bazel:latest
root@5a99103747c6:/#
कंटेनर के कॉन्टेंट को एक्सप्लोर करें.
root@5a99103747c6:/# clang --version clang version 8.0.0 (trunk 340178) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/bin
root@5a99103747c6:/# java -version openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.16.04.1-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
root@5a99103747c6:/# python -V Python 2.7.12
root@5a99103747c6:/# python3 -V Python 3.6.6
root@5a99103747c6:/# bazel version Extracting Bazel installation... Build label: 6.0.0 Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar Build time: Mon Dec 19 15:52:35 2022 (1671465155) Build timestamp: 1671465155 Build timestamp as int: 1671465155