المقدمة
يوضح هذا المستند كيفية حل المشكلة عندما يحصل المستخدم على خطأ "غير قادر على الوصول إلى clqr-repository-client-*-jar-with-dependencies.jar".
المتطلبات الأساسية
المتطلبات
لا توجد متطلبات خاصة لهذا المستند.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى Cloud Center الإصدار 4.6 والإصدارات الأحدث.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.
المشكلة
عادة، عند محاولة نشر تطبيق باستخدام إجراء دورة الحياة الخارجية، يحاول Docker تنفيذ البرامج النصية التي بدأها CCO. على أي حال، يفشل لأنه لا يستطيع قراءة النص التنفيذي نفسه بسبب أن الوثائق تالفة.
رسالة الخطأ:
2017-03-12 17:08:01,085 DEBUG service.LifecycleExternalServiceAction [nodeMessageTaskExecutor-12] - reading container
script timeout value from gateway configuration 10m
2017-03-12 17:08:05,181 DEBUG container.GatewayContainerService [nodeMessageTaskExecutor-12] - 306: Output
Error: Unable to access jarfile cliqr-repository-client-*-jar-with-dependencies.jar^M
CLIQR_EXTERNAL_SERVICE_ERR_MSG_START^M
Failed to download files specified in environment variables^M
CLIQR_EXTERNAL_SERVICE_ERR_MSG_END^M
2017-03-12 17:08:05,182 ERROR service.LifecycleExternalServiceAction [nodeMessageTaskExecutor-12] -
java.lang.ArrayIndexOutOfBoundsException: 4
java.lang.ArrayIndexOutOfBoundsException: 4
at com.osmosix.gateway.container.ContainerWorkerBuilder.build(ContainerWorkerBuilder.java:31)
at com.osmosix.gateway.container.GatewayContainerService.execute(GatewayContainerService.java:94)
at com.osmosix.gateway.lifecycle.action.orchestration.service.LifecycleExternalServiceAction.
executeContainerCommand(LifecycleExternalServiceAction.java:198)
ملاحظة: في واجهة المستخدم الرسومية، تظهر مع خطأ 4 فقط.
لتصحيح هذه المشكلة، يلزمك اتباع الخطوات التالية:
التحقق من الصحة
من جهاز CCO/Docker (حيث تم تثبيت Docker)، قم بتشغيل هذا الأمر:
#docker run 'cliqr/worker:latest' sleep 100000
Error: Unable to access jarfile cliqr-repository-client-*-jar-with-dependencies.jar^M
CLIQR_EXTERNAL_SERVICE_ERR_MSG_START^M
Failed to download files specified in environment variables^M
CLIQR_EXTERNAL_SERVICE_ERR_MSG_END^M
الحل
1. تسجيل الدخول إلى CCO أو جهاز الإرساء (إذا كان مستقلا).
2. حفظ صورة Docker القديمة.
3. أستخدم root@abc-cco ~]# المستخدم لحفظ المستخدم/العامل:latest > oldimage.tar.
4. قم بإزالة صورة Docker.
[root@abc-cco ~]# docker rmi -f a81630771eec
Untagged: cliqr/worker:latest
Deleted: sha256:a816567771eec9e8727162ab140b4e4a39fffwer43b3d403e56f2f12ed7c6d05f8
Deleted: sha256:167e65676beb12727aa74ddac2b7d87e113d1ee80cbecf93980595ca38cb92d37
Deleted: sha256:7f65225671815905d1b077b79c838f3fcff305a07dfg0129800605b104e7a71
Deleted: sha256:68f724567derd4031368a20e1ad72a15d0dfgdfg4ebf3dd5025932a2a625ee8a8c3
5. الحصول على ملف الخادم الجديد الذي يتم تنزيله بعد ذلك.
root@abc-cco ~]#wget http://repo.cliqrtech.com/bin/docker/docker.tar
6. قم بإزالة صورة Docker.
[root@abc-cco ~]# tar -xvf docker.tar
cliqr-container-worker/
cliqr-container-worker/Dockerfile
cliqr-container-worker/utils.sh
cliqr-container-worker/worker.sh
cliqr-container-worker/cliqr-repository-client-4.7.0-jar-with-dependencies.jar
[root@abc-cco ~]# cd cliqr-container-worker
7. إنشاء صورة Docker.
[root@abc-cco cliqr-container-worker]# docker build -t 'cliqr/worker:latest' .
Sending build context to Docker daemon 73.26 MB
Step 1 : FROM centos:7
---> 0584b3d2cf6d
Step 2 : ENV JAVA_VERSION 1.7.0
---> Running in 5a30ce6e6e2f
---> ef6176cc1816
Removing intermediate container 5a30ce6e6e2f
Step 3 : RUN rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm && sed -i "s/mirrorlist=https/mirrorlist=http/" /etc/yum.repos.d/epel.repo && yum clean all && yum -y update && yum -y install python-pip wget unzip ssh vim && yum -y install java-${JAVA_VERSION}-openjdk-headless
---> Running in f20c66af5d98
.......
.....
... output shorted for space
8. بمجرد إعادة بناء المحول، وعندما تقوم بتشغيل هذا الأمر، يمكنك التحقق منه:
[root@abc-cco cliqr-container-worker]# docker run 'cliqr/worker:latest' sleep 100000
CLIQR_EXTERNAL_SERVICE_LOG_MSG_START
Download service bundle: success.
CLIQR_EXTERNAL_SERVICE_LOG_MSG_END
CLIQR_EXTERNAL_SERVICE_LOG_MSG_START
Executing service sleep action with command: "" from directory:
CLIQR_EXTERNAL_SERVICE_LOG_MSG_END
[root@abc-cco cliqr-container-worker]#
9. قم بنشر تطبيق جديد باستخدام إجراء دورة الحياة الخارجية الذي يتم تشغيله على CCO. إصدار التطبيق:؟ 4.7.2