Compose: Hanya Pasang Ekstensi File Tertentu

Dibuat pada 24 Jul 2014  ·  3Komentar  ·  Sumber: docker/compose

Saya tidak yakin apakah ini mungkin, tetapi saya bertanya-tanya apakah mungkin untuk me-mount saja, katakanlah, *.py file dengan bagian volumes dari fig.yml .

Saya mencoba memasang direktori yang memiliki paket python di dalamnya. Dockefile saya terlihat seperti ini:

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

Masalahnya adalah ketika saya memiliki fig.yml seperti ini:

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

Dan kemudian jalankan coba jalankan CLI yang diinstal dengan aplikasi Python saya, itu tidak berhasil, karena pip install -e . membuat beberapa direktori dengan paket python bawaan di bawah /code/ . Kemudian ketika saya memasang direktori kode sumber lokal saya di atas direktori itu, itu menghapus direktori build itu dan perintah gagal.

$ 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

Jadi jika saya hanya dapat memasang file .py , itu tidak akan menimpa semua hal lainnya. Saya tidak yakin apakah ini mungkin dari jarak jauh, dan jika tidak, apakah Anda memiliki tip menggunakan fig untuk pengembangan paket python/

Komentar yang paling membantu

Solusi terbaik yang saya temukan hanyalah memasang kode aktual dan direktori pengujian, dan membiarkan file lain tidak tersentuh.

Dengan cara ini file sumber akan diperbarui tanpa membangun kembali, tetapi tidak akan menimpa file yang dikompilasi.

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

Semua 3 komentar

Ini tidak mungkin dengan volume Docker, saya khawatir.

Apakah mungkin untuk mendapatkan pip install untuk meletakkan file di direktori yang berbeda, di luar /code , dan mengkonfigurasi Python untuk mencari di sana? Melirik ke Pip docs , sepertinya --root atau --target mungkin berhasil.

Solusi terbaik yang saya temukan hanyalah memasang kode aktual dan direktori pengujian, dan membiarkan file lain tidak tersentuh.

Dengan cara ini file sumber akan diperbarui tanpa membangun kembali, tetapi tidak akan menimpa file yang dikompilasi.

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

Ini membuatku gila selama berjam-jam, terima kasih @saulshanabrook

Apakah halaman ini membantu?
0 / 5 - 0 peringkat