Size: a a a

2020 November 17

SK

Suren Khorenyan in aiogram [ru]
Евгений Петров
Народ, а подскажите, пожалуйста, как Docker понимает, что...
RUN pip install --no-cache-dir --upgrade pip \
   && pip install --no-cache-dir -r /app/requirements.txt


...не изменился? Использую --no-cache-dir, обновляю pip (который по умолчанию в 3.8-slim-buster старенький). Но всё равно повторные вызовы этой команды берутся из кэша
но! если у тебя эта строчка идёт ПОСЛЕ того, как ты копируешь внутрь requirements.txt, то хэш уже изменился, и вся строчка выполнится заново - поставит пип и зависимости
источник

ЕП

Евгений Петров... in aiogram [ru]
Suren Khorenyan
но! если у тебя эта строчка идёт ПОСЛЕ того, как ты копируешь внутрь requirements.txt, то хэш уже изменился, и вся строчка выполнится заново - поставит пип и зависимости
Да, разумеется. Если я поменял requirements.txt, я хочу, чтобы pip install отработал заново
источник

SK

Suren Khorenyan in aiogram [ru]
Евгений Петров
А чтобы переустановить pip, надо собирать с флагом --no-cache? docker build --no-cache... ?
угу. ну либо перед такой командой сделать копирование локального файла, который будет меняться у тебя перед сборкой (например, номер версии туда). чтобы не все слои заново собирать
источник

SK

Suren Khorenyan in aiogram [ru]
Евгений Петров
Да, разумеется. Если я поменял requirements.txt, я хочу, чтобы pip install отработал заново
ну в таком случае вся строчка выполнится заново после изменения файла, так как он копируется ДО
источник

ЕП

Евгений Петров... in aiogram [ru]
Suren Khorenyan
угу. ну либо перед такой командой сделать копирование локального файла, который будет меняться у тебя перед сборкой (например, номер версии туда). чтобы не все слои заново собирать
Я тогда попробую с CI прокинуть как задачу в ручном режиме
источник

ЕП

Евгений Петров... in aiogram [ru]
Suren Khorenyan
ну в таком случае вся строчка выполнится заново после изменения файла, так как он копируется ДО
так это и правильно ж, не?
источник

SK

Suren Khorenyan in aiogram [ru]
Евгений Петров
так это и правильно ж, не?
если тебе нужно, то да
источник

SK

Suren Khorenyan in aiogram [ru]
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir -r /app/requirements.txt

это команды, которые нужно выполнить
дальше вопрос по копированию файла

COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir -r /app/requirements.txt

^^^ тут пип обновится



RUN pip install --no-cache-dir --upgrade pip
COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

^^^ тут пип НЕ обновится, но зависимости при сборке поставятся заново
источник

SK

Suren Khorenyan in aiogram [ru]
у тебя там в одну строчку, это ок, я просто для понимания разнёс
источник

ЕП

Евгений Петров... in aiogram [ru]
Suren Khorenyan
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir -r /app/requirements.txt

это команды, которые нужно выполнить
дальше вопрос по копированию файла

COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir -r /app/requirements.txt

^^^ тут пип обновится



RUN pip install --no-cache-dir --upgrade pip
COPY ./requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r /app/requirements.txt

^^^ тут пип НЕ обновится, но зависимости при сборке поставятся заново
Понял, спасибо! А ты сам как посоветуешь? Включать pip в обновление, не включать или вообще пофиг? По идее, там неплохая совместимость должна быть
источник

SK

Suren Khorenyan in aiogram [ru]
Евгений Петров
Понял, спасибо! А ты сам как посоветуешь? Включать pip в обновление, не включать или вообще пофиг? По идее, там неплохая совместимость должна быть
не сталкивался чтобы была такая проблема, так что у меня всегда второй вариант
источник

ЕП

Евгений Петров... in aiogram [ru]
Suren Khorenyan
не сталкивался чтобы была такая проблема, так что у меня всегда второй вариант
Второй — это upgrade pip ДО requirements?
источник

SK

Suren Khorenyan in aiogram [ru]
угу
точнее я даже обычно не обновляю пип
конечно, в образах не самая последняя версия обычно, но у меня не возникало проблем
источник

ЕП

Евгений Петров... in aiogram [ru]
Ещё раз спасибо :)
источник

F

Fᴏʀᴅᴇɴ in aiogram [ru]
Евгений Петров
Понял, спасибо! А ты сам как посоветуешь? Включать pip в обновление, не включать или вообще пофиг? По идее, там неплохая совместимость должна быть
А зачем пип вообще обновлять?
источник

ЕП

Евгений Петров... in aiogram [ru]
Fᴏʀᴅᴇɴ
А зачем пип вообще обновлять?
Хороший вопрос. Не знаю. Сам pip пишет, что можно обновиться, плюс как-то был случай, когда зачем-то нужно было его обновить, в начале года.
источник

ЕП

Евгений Петров... in aiogram [ru]
Возможно, это лишнее действительно. Просто если отдельной командой — то лишний слой создаётся. Пусть и мелкий (?)
источник

SK

Suren Khorenyan in aiogram [ru]
Евгений Петров
Возможно, это лишнее действительно. Просто если отдельной командой — то лишний слой создаётся. Пусть и мелкий (?)
не вижу смысла запариваться вообще по поводу лишнего слоя
так у тебя при обновлении щависимостей ещё и пип обновляться будет. не долгая задача, но всё же
источник

ЕП

Евгений Петров... in aiogram [ru]
Справедливо. Попробую тогда по-твоему
источник

ЕП

Евгений Петров... in aiogram [ru]
сцук, каждый раз с этого ору
источник