День Docker'а на канале.
Все, кто пользуется Docker, знают, что он кэширует сборку слоями, команда за командой. Но знали ли вы, что с недавних пор помимо кэширования слоями можно ещё закэшировать отдельную папку? Например, таким образом можно заставить работать встроенный в
Магия активируется вот таким набором заклинаний:
1. устанавливаем переменную окружения, чтобы задействовать новый механизм сборки:
Как минимум, это удобно для сборки образов на локальной машине. Если в CI настроить сохранение кэшей Docker'а между запусками, то это тоже будет работать.
https://pythonspeed.com/articles/docker-cache-pip-downloads/
#синийкит #docker
Все, кто пользуется Docker, знают, что он кэширует сборку слоями, команда за командой. Но знали ли вы, что с недавних пор помимо кэширования слоями можно ещё закэшировать отдельную папку? Например, таким образом можно заставить работать встроенный в
pip
кэш и не перекачивать все ваши 1000 пакетов старых зависимостей из PyPI каждый раз, если вы вдруг решили добавить ещё одну новую.Магия активируется вот таким набором заклинаний:
1. устанавливаем переменную окружения, чтобы задействовать новый механизм сборки:
$ export DOCKER_BUILDKIT=12. в начало
Dockerfile
добавляем строчку с указанием на новый синтаксис:# syntax = docker/dockerfile:1.33. в команду
RUN
добавляются новые аргументы:RUN --mount=type=cache,target=/root/.cache \Docker закэширует эту папку у себя во внутреннем кэше, и будет подкладывать её внутрь для этого шага при каждой новой сборке. В итоговом образе этих файлов не будет, но шаг с установкой зависимостей будет проходить намного быстрее.
pip install -r requirements.txt
Как минимум, это удобно для сборки образов на локальной машине. Если в CI настроить сохранение кэшей Docker'а между запусками, то это тоже будет работать.
https://pythonspeed.com/articles/docker-cache-pip-downloads/
#синийкит #docker
Python⇒Speed
Speed up pip downloads in Docker with BuildKit’s new caching
Every time you change your Python pip requirements and rebuild your Docker image, you’re going to redownload all your packages. You can fix this with BuildKit.
Ну и ещё одна фича — команда
Источник: https://twitter.com/iximiuz/status/1436361338696183815?s=20
#синийкит #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
Twitter
Ivan Velichko
Dockerfile COPY also got the heredoc support 🎉 Now all kinds of file embedding are possible! Example: COPY <<EOF /usr/share/nginx/html/index.html <html> <head></head> <body>Hi!</body> </html> EOF
Forwarded from Python Daily
Вышел Docker Compose V2. Первая версия была написана на Python, вторая же теперь на Golang, что довольно логично. Наконец можно писать в терминале
Судя по документации первая версия всё еще будет поддерживаться и продолжит работать в штатном режиме.
#docker #nothabr #pydaily
docker compose
вместо docker-compose
. Для более лёгкого перехода команда Docker написала тулзу compose-switch, которая транслирует docker-compose
команды в новый docker compose
. Судя по документации первая версия всё еще будет поддерживаться и продолжит работать в штатном режиме.
#docker #nothabr #pydaily
GitHub
GitHub - docker/compose: Define and run multi-container applications with Docker
Define and run multi-container applications with Docker - docker/compose