Size: a a a

2020 August 25

MK

Maxim Koltsov in PiterPy Meetup
хм, а ведь если копировать pyproject.toml и poetry.lock в докер без копирования кода, типа чтобы закешировать зависимости сначала, всё равно ведь кэш будет ломаться когда вы обновляете версию в pyproject
источник

MK

Maxim Koltsov in PiterPy Meetup
хотя на зависимости и на лок это не влияет
источник

MK

Maxim Koltsov in PiterPy Meetup
как вы это обходите?
источник

DB

Dima Boger in PiterPy Meetup
когда это прям мешает, то делаю image-requirements:hash(poetry.lock) и храню образ с питоно-зависимостями отдельно

если хэш лока поменялся, то надо пересобрать образ с питоно-зависимостями
источник

MK

Maxim Koltsov in PiterPy Meetup
это что за синтаксис такой?
источник

DB

Dima Boger in PiterPy Meetup
это псевдо-синтаксис твоего CI/CD 😈
источник

MK

Maxim Koltsov in PiterPy Meetup
)))
источник

MK

Maxim Koltsov in PiterPy Meetup
ясно
источник

DB

Dima Boger in PiterPy Meetup
ладно, сейчас
источник

DB

Dima Boger in PiterPy Meetup
    - export REQ_HASH=$( md5sum requirements.txt | awk '{print $1}')
   - export REGISTRY=$CI_REGISTRY/$(echo $CI_PROJECT_PATH | awk '{print tolower($0)}')
   - docker version
   - 'echo Requirements hash: $REQ_HASH'
   - docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
   - >
     if ! docker pull $REGISTRY/requirements:$REQ_HASH; then
      docker build -t $REGISTRY/requirements:$REQ_HASH --file Dockerfile.requirements .
      docker push $REGISTRY/requirements:$REQ_HASH
     fi
   - >
     docker build -t $REGISTRY/app:$CI_COMMIT_SHA
     --build-arg PATH=$REGISTRY/requirements
     --build-arg REQ_HASH=$REQ_HASH
     --file Dockerfile.app .
   - docker push ${REGISTRY}/app:${CI_COMMIT_SHA}
   - docker logout ${CI_REGISTRY}
источник

DB

Dima Boger in PiterPy Meetup
но я это придумал ещё до того как я узнал что докер умеет кэшировать слои)))

поэтому моё решение возможно немного biased, может знающие люди чего подскажут

было бы прикольно иметь возможность ставить чисто по лок-файлу, тогда бы такие проблемы прошли
источник

MK

Maxim Koltsov in PiterPy Meetup
а ты виртуаленвы поетревские вырубаешь в докере?
источник

DB

Dima Boger in PiterPy Meetup
вырубаю
источник

MK

Maxim Koltsov in PiterPy Meetup
мб я уже спрашивал...
источник

DB

Dima Boger in PiterPy Meetup
не понимаю в чём профит от них в докере
источник

MK

Maxim Koltsov in PiterPy Meetup
я уже жаловался, что если поетри установлен пипом, то poetry install без енвов удаляет свои собственные зависимости
источник

DB

Dima Boger in PiterPy Meetup
да))
источник

DB

Dima Boger in PiterPy Meetup
классная фича
источник

MK

Maxim Koltsov in PiterPy Meetup
ну вот это мне и не нравится
источник

DB

Dima Boger in PiterPy Meetup
а я пипом и не ставлю
источник