Compose: تحميل امتدادات ملفات معينة فقط

تم إنشاؤها على ٢٤ يوليو ٢٠١٤  ·  3تعليقات  ·  مصدر: docker/compose

لست متأكدًا مما إذا كان هذا ممكنًا ، لكنني أتساءل عما إذا كان من الممكن تحميل ملفات *.py مع الجزء volumes من fig.yml سبيل المثال.

أحاول تحميل دليل به حزمة بايثون. يبدو ملف Dockefile الخاص بي كما يلي:

FROM python:3

ADD . /code/
WORKDIR /code
RUN pip install -r requirements-testing.txt -e .

ENV LC_ALL C.UTF-8
ENV LANG C.UTF-8

المشكلة هي أنه عندما يكون لدي fig.yml مثل هذا:

python:
  build: .
  volumes:
    - .:/code/

ثم قم بتشغيل محاولة تشغيل CLI المثبت مع تطبيق Python الخاص بي ، فهو لا يعمل ، لأن pip install -e . ينشئ بعض الأدلة مع حزمة python المدمجة تحت /code/ . ثم عندما أقوم بتثبيت دليل رمز المصدر المحلي الخاص بي فوق هذا الدليل ، فإنه يزيل دليل الإنشاء ويفشل الأمر.

$ fig run python dc-campaign-finance-scraper
Traceback (most recent call last):
  File "/usr/local/bin/dc-campaign-finance-scraper", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/local/lib/python3.4/site-packages/pkg_resources.py", line 2697, in <module>
    working_set.require(__requires__)
  File "/usr/local/lib/python3.4/site-packages/pkg_resources.py", line 669, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/local/lib/python3.4/site-packages/pkg_resources.py", line 572, in resolve
    raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: dc-campaign-finance-scraper==0.5.1

لذلك إذا كان بإمكاني فقط تحميل ملفات .py ، فلن يتم استبدال كل تلك الأشياء الأخرى. لست متأكدًا مما إذا كان هذا ممكنًا عن بُعد ، وإذا لم يكن كذلك ، فهل لديك أي نصائح باستخدام التين لتطوير حزمة Python /

التعليق الأكثر فائدة

أفضل حل وجدته هو فقط تحميل الكود الفعلي وأدلة الاختبارات ، وترك الملفات الأخرى دون تغيير.

بهذه الطريقة سيتم تحديث ملفات المصدر دون إعادة البناء ، لكنها لن تستبدل الملفات المترجمة.

python:
  build: .
  volumes:
    - dc_campaign_finance_scraper:/code/dc_campaign_finance_scraper
    - test:/code/test

ال 3 كومينتر

هذا غير ممكن مع مجلدات Docker ، أخشى.

هل من الممكن الحصول على pip install لوضع الملفات في دليل مختلف ، خارج /code ، وتهيئة Python للبحث هناك؟ بإلقاء نظرة سريعة على مستندات Pip ، يبدو أن --root أو --target قد يفي بالغرض.

أفضل حل وجدته هو فقط تحميل الكود الفعلي وأدلة الاختبارات ، وترك الملفات الأخرى دون تغيير.

بهذه الطريقة سيتم تحديث ملفات المصدر دون إعادة البناء ، لكنها لن تستبدل الملفات المترجمة.

python:
  build: .
  volumes:
    - dc_campaign_finance_scraper:/code/dc_campaign_finance_scraper
    - test:/code/test

كان هذا يقودني للجنون لساعات ، شكرًا لك saulshanabrook

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات