Docker tips: COPY и ADD

Docker tips: COPY и ADD
Photo by Rubaitul Azad / Unsplash

Иногда, просматривая разные Dockerfile, вы можете видеть инструкции COPY или ADD. Они очень похожи, но в 99% случаев вы должны использовать COPY вместо ADD. И вот почему.

COPY и ADD - это инструкции Dockerfile, которые выполняют похожие действия. Они предоставляют возможность скопировать файлы из указанного места внутрь Docker образа.

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

ADD позволяет сделать все тоже самое, только эта инструкция поддерживает еще 2 исходных места. Во-первых, вы можете использовать URL в качестве источника. Во-вторых, вы можете распаковать tar файл из источника в образ.

В большинстве случаев, если вы используете URL для загрузки zip файла, то после этого вам необходимо выполнить RUN для его распаковки. Если это так, то лучше использовать RUN для запуска curl и распаковки файла, чем использовать ADD и потом RUN. Это уменьшит размер Docker образа.

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

ADD file.tar.gz /opt

Если же вы просто копируете файлы, то всегда используйте COPY.

Read more

🔄 Своя Dropbox-альтернатива: Syncthing

🔄 Своя Dropbox-альтернатива: Syncthing

🧠 Зачем? Облачные сервисы — удобно, но: * не хочется платить Google/Dropbox за хранение своих файлов * хочется моментально синхронизировать фото, документы и заметки между устройствами * и делать это на своём сервере, без отправки данных «в облако» 👉 Решение — Syncthing: децентрализованный, зашифрованный, open source-синк между любыми устройствами. 🚀 Что ты получишь? * 📂 Автосинк папок между сервером,

🎧 Свой подкаст-сервер за 5 минут: Podgrab

🎧 Свой подкаст-сервер за 5 минут: Podgrab

✨ Зачем? Подкасты — отличный способ учиться, развлекаться и быть в курсе мира. Но что, если: * Хочется слушать подкасты офлайн * Хочется архивировать любимые шоу * Не устраивают сторонние сервисы, реклама и трекеры Решение: Podgrab — простой подкаст-граббер, который автоматически скачивает новые выпуски с любого RSS. А в связке с Audiobookshelf ты получаешь полноценный медиасервер.

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Безопасное управление конфигурациями в Ansible: Полное руководство по использованию rescue и always

Введение: Почему это важно В мире DevOps и системного администрирования существует простое правило: всё ломается. Особенно в самый неподходящий момент. Когда вы изменяете конфигурацию критического сервиса (например, Nginx), цена ошибки может быть очень высока — от простого даунтайма до потери данных. Ansible предлагает элегантное решение для безопасного внесения изменений через механизм

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Использование ~/.ssh/authorized_keys для управления входящими SSH-соединениями

Файл ~/.ssh/authorized_keys позволяет настроить команды, которые будут выполняться при входящих SSH-соединениях. Это полезный инструмент для управления доступом и обеспечения безопасности, особенно при работе с резервным копированием данных. Настройка резервного копирования с использованием authorized_keys В данном примере рассматривается использование authorized_keys для настройки резервного копирования базы данных Bacula