Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
День Docker'а на канале.

Все, кто пользуется Docker, знают, что он кэширует сборку слоями, команда за командой. Но знали ли вы, что с недавних пор помимо кэширования слоями можно ещё закэшировать отдельную папку? Например, таким образом можно заставить работать встроенный в pip кэш и не перекачивать все ваши 1000 пакетов старых зависимостей из PyPI каждый раз, если вы вдруг решили добавить ещё одну новую.

Магия активируется вот таким набором заклинаний:

1. устанавливаем переменную окружения, чтобы задействовать новый механизм сборки:

$ export DOCKER_BUILDKIT=1

2. в начало Dockerfile добавляем строчку с указанием на новый синтаксис:

# syntax = docker/dockerfile:1.3

3. в команду RUN добавляются новые аргументы:

RUN --mount=type=cache,target=/root/.cache \
pip install -r requirements.txt

Docker закэширует эту папку у себя во внутреннем кэше, и будет подкладывать её внутрь для этого шага при каждой новой сборке. В итоговом образе этих файлов не будет, но шаг с установкой зависимостей будет проходить намного быстрее.

Как минимум, это удобно для сборки образов на локальной машине. Если в CI настроить сохранение кэшей Docker'а между запусками, то это тоже будет работать.

https://pythonspeed.com/articles/docker-cache-pip-downloads/

#синийкит #docker
Ну и ещё одна фича — команда COPY в Dockerfile тоже получила поддержку heredoc.

# syntax=docker/dockerfile:1.3-labs
COPY <<EOF /usr/share/nginx/html/index.html
<html>
<head></head>
<body>Hi!</body>
</html>
EOF

Теперь можно разные небольшие файлы создавать прямо в Dockerfile.

Источник: https://twitter.com/iximiuz/status/1436361338696183815?s=20

#синийкит #docker
Forwarded from Python Daily
Вышел Docker Compose V2. Первая версия была написана на Python, вторая же теперь на Golang, что довольно логично. Наконец можно писать в терминале docker compose вместо docker-compose. Для более лёгкого перехода команда Docker написала тулзу compose-switch, которая транслирует docker-compose команды в новый docker compose.
Судя по документации первая версия всё еще будет поддерживаться и продолжит работать в штатном режиме.

#docker #nothabr #pydaily