Bazel Docker कंटेनर का इस्तेमाल शुरू करना

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

इस पेज पर, 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