Питонические атаки
1.19K subscribers
183 photos
4 videos
1 file
459 links
Всяческие заметки про программирование на Python и другие весёлые истории.
Download Telegram
Ещё одна классная фича, доступная с новым синтаксисом Dockerfile — многострочные команды, т.е. поддержка полноценных скриптов! Умные люди называют такой синтаксис heredoc. Теперь можно больше не писать эти дурацкие амперсанды и бэкслеши в конце каждой строчки в длинной команде.

Раньше:

FROM debian
RUN apt-get update \
&& apt-get install -y vim

Сейчас:

# syntax=docker/dockerfile:1.3-labs
FROM debian
RUN <<eot bash
apt-get update
apt-get install -y vim
eot

А ещё таким образом можно запускать даже скрипты на python (да и вообще любые скрипты). Скрипт выполнится, результаты его работы останутся в образе, но сам он никогда туда не попадёт, потому что он вообще не сохраняется на диск. Пока не придумал, зачем такое может пригодиться, но прикольно:

# syntax=docker/dockerfile:1.3-labs
FROM python:3.9-slim-buster

RUN python3 <<EOF
for i in range(10):
with open(f"/{i}.txt", "w") as f:
f.write(f"File {i}")
EOF

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

#синийкит #dockerо