تقدّم هذه الصفحة تفاصيل حول محتوى حاوية Bazel وكيفية إنشاء مشروع aseil-cpp باستخدام Bazel داخل حاوية Bazel، وكيفية إنشاء هذا المشروع مباشرةً. من الجهاز المضيف باستخدام حاوية Bazel مع تثبيت الدليل.
يمكنك إنشاء مشروع Obseil من جهازك المضيف مع دليل.
تتيح لك التعليمات الواردة في هذا القسم الإنشاء باستخدام حاوية Bazel مع المصادر التي تمّ تسجيل الخروج في بيئة المضيف. يتم تشغيل حاوية لكل أمر إصدار تنفّذه. ويتم تخزين نتائج الإصدار مؤقتًا في بيئة المضيف حتى يمكن إعادة استخدامها عبر الإصدارات.
استنسخ المشروع إلى دليل في الجهاز المضيف.
git clone https://github.com/abseil/abseil-cpp.git /src/workspace
أنشئ مجلدًا يحتوي على نتائج مخزَّنة مؤقتًا لمشاركتها عبر الإصدارات.
mkdir -p /tmp/build_output/
يمكنك استخدام حاوية Bazel لإنشاء المشروع وتوفير مخرجات الإصدار في مجلد الإخراج على الجهاز المضيف.
docker run \
-e USER="$(id -u)" \
-u="$(id -u)" \
-v /src/workspace:/src/workspace \
-v /tmp/build_output:/tmp/build_output \
-w /src/workspace \
l.gcr.io/google/bazel:latest \
--output_user_root=/tmp/build_output \
build //absl/...
أنشِئ المشروع باستخدام معقّمات من خلال إضافة علامة الإصدار --config=asan|tsan|msan
لاختيار AddressSanitizer (asan) أو ThreadSanitizer (tsan) أو
MemorySanitizer (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 \
l.gcr.io/google/bazel:latest \
--output_user_root=/tmp/build_output \
build --config={asan | tsan | msan} -- //absl/... -//absl/types:variant_test
إنشاء مشروع باسيل من داخل الحاوية
تتيح لك التعليمات الواردة في هذا القسم الإنشاء باستخدام حاوية Bazel مع المصادر داخل الحاوية. من خلال بدء حاوية في بداية سير عمل التطوير وإجراء تغييرات في worskpace ضمن الحاوية، سيتم تخزين نتائج الإصدار مؤقتًا.
ابدأ تشغيل واجهة مستخدم في حاوية Bazel:
docker run --interactive --entrypoint=/bin/bash l.gcr.io/google/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
لتحديد AddressAddressitizer (asan) أو ThreadSanitizer (tsan) أو
MemorySanitizer (msan) وفقًا لذلك.
root@5a99103747c6:~/abseil-cpp# bazel build --config=--config={asan | tsan | msan} -- //absl/... -//absl/types:variant_test
استكشاف حاوية "بازيل"
في حال لم يسبق لك ذلك، يمكنك بدء واجهة تفاعلية ضمن حاوية Bazel.
docker run -it --entrypoint=/bin/bash l.gcr.io/google/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: 0.17.1 Build target: bazel-out/k8-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar Build time: Fri Sep 14 10:39:25 2018 (1536921565) Build timestamp: 1536921565 Build timestamp as int: 1536921565