This media is not supported in your browser
VIEW IN TELEGRAM
💡 КАК НАЧАТЬ РАБОТАТЬ С DOCKER
Docker кажется сложным только до первого запуска контейнера. Главное - понять, что это не “магия серверов”, а способ запускать приложение в изолированной среде с уже готовыми зависимостями.
Самый быстрый старт - перестать ставить всё на систему и начать упаковывать проекты в контейнеры. Тогда у тебя одинаково работает код на ноутбуке, сервере и у коллег.
Базовый подход такой: у тебя есть приложение → ты описываешь среду в Dockerfile → собираешь образ → запускаешь контейнер. Всё. Никаких конфликтов версий, “у меня работает”, сломанных Python/Node окружений.
Начни с простого правила — каждый новый проект сразу оборачивай в Docker, даже если он маленький. Через пару недель это станет привычкой, а проблемы с окружением исчезнут.
Docker кажется сложным только до первого запуска контейнера. Главное - понять, что это не “магия серверов”, а способ запускать приложение в изолированной среде с уже готовыми зависимостями.
Самый быстрый старт - перестать ставить всё на систему и начать упаковывать проекты в контейнеры. Тогда у тебя одинаково работает код на ноутбуке, сервере и у коллег.
Базовый подход такой: у тебя есть приложение → ты описываешь среду в Dockerfile → собираешь образ → запускаешь контейнер. Всё. Никаких конфликтов версий, “у меня работает”, сломанных Python/Node окружений.
Начни с простого правила — каждый новый проект сразу оборачивай в Docker, даже если он маленький. Через пару недель это станет привычкой, а проблемы с окружением исчезнут.
Установка Docker уже сделана
Проверка
docker --version
Простой Dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Сборка образа
docker build -t myapp .
Запуск контейнера
docker run -p 8000:8000 myapp
❤6
🔥 Полезная подборка каналов только код, практика и самые передовые инструменты, которые используют разработчики прямо сейчас.👇
🖥 ИИ: t.me/ai_machinelearning_big_data
🖥 Python: t.me/pythonl
🖥 Linux: t.me/linuxacademiya
🖥 C++ t.me/cpluspluc
🖥 Docker: t.me/DevopsDocker
🖥 Хакинг: t.me/linuxkalii
🖥 Devops: t.me/DevOPSitsec
👣 Golang: t.me/Golang_google
🖥 Аналитика: t.me/data_analysis_ml
🖥 Javascript: t.me/javascriptv
🖥 C#: t.me/csharp_ci
🖥 Java: t.me/javatg
🖥 Базы данных: t.me/sqlhub
👣 Rust: t.me/rust_code
🤖 Технологии: t.me/machineint
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
🖥 Chatgpt бот в тг: t.me/Chatgpturbobot
📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy
🖥 Подборка по Golang: https://t.me/addlist/MUtJEeJSxeY2YTFi
⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy
Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
💰 Экономика и инвестиции в ИИ t.me/financeStable
💼 Актуальные вакансии: t.me/addlist/_zyy_jQ_QUsyM2Vi
📚 Бесплатные ит-книги: https://t.me/addlist/HwywK4fErd8wYzQy
⚡️ Лучшие ИИ ресурсы: https://t.me/addlist/2Ls-snqEeytkMDgy
Самое лучшее в этом: ты учишься даже тогда, когда “нет времени, просто потому что читаешь правильную ленту.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Docker-совет по оптимизации: уменьшите размер образа в несколько раз с помощью multi-stage build.
Многие образы весят сотни мегабайт, потому что в них остаются:
- компиляторы
- dev-зависимости
- временные файлы сборки
Но в продакшене нужен только готовый бинарь или собранное приложение.
Решение — многоэтапная сборка.
Идея:
1. В первом этапе — собираем проект
2. Во втором — копируем только результат
3. Всё лишнее остаётся в предыдущем слое и не попадает в финальный образ
Пример для Go:
# Stage 1 - сборка
FROM golang:1.22 AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o app
# Stage 2 - минимальный образ
FROM alpine:3.20
WORKDIR /app
COPY --from=builder /app/app .
CMD ["./app"]
Что это даёт:
- размер образа уменьшается в 5–20 раз
- быстрее pull и deploy
- меньше поверхность для уязвимостей
- быстрее запуск контейнеров
Аналогично работает для:
- Node (build → copy dist)
- Python (wheel → runtime)
- Java (build → copy jar)
Главная идея: в продакшен-образе должно быть только то, что нужно для запуска.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔍 Исследуйте связи с Эпштейном
EpsteIn — инструмент для поиска упоминаний ваших контактов LinkedIn в судебных документах Эпштейна. Просто загрузите файл с контактами и получите отчет в HTML-формате с результатами поиска.
🚀 Основные моменты:
- Поиск упоминаний в судебных документах
- Генерация отчетов в HTML
- Поддержка CSV-файлов с контактами LinkedIn
- Удобный интерфейс для просмотра результатов
📌 GitHub: https://github.com/cfinke/EpsteIn
#python
EpsteIn — инструмент для поиска упоминаний ваших контактов LinkedIn в судебных документах Эпштейна. Просто загрузите файл с контактами и получите отчет в HTML-формате с результатами поиска.
🚀 Основные моменты:
- Поиск упоминаний в судебных документах
- Генерация отчетов в HTML
- Поддержка CSV-файлов с контактами LinkedIn
- Удобный интерфейс для просмотра результатов
📌 GitHub: https://github.com/cfinke/EpsteIn
#python
😁7❤6👍3💩2🥴2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Forwarded from DevOps Docker
🐳 Docker Layer Caching Trick
Многие Docker-сборки занимают 5–10 минут
даже если вы изменили одну строку кода.
Причина - неправильный порядок инструкций в Dockerfile.
🚫 Плохой Dockerfile
COPY . /app
RUN npm install
RUN npm run build
Если меняется любой файл в коде →
слой
Docker сбрасывает кэш и заново запускает:
• npm install
• build
Даже если зависимости не менялись.
⏳ В итоге - каждая сборка почти с нуля.
✅ Правильный Dockerfile
COPY package*.json /app
RUN npm install
COPY . /app
RUN npm run build
Теперь Docker работает умнее:
если изменился только код:
• слой
• пересобирается только build
⚡ Время сборки
До - ~10 минут
После - ~30 секунд
📌 Золотое правило Dockerfile
Сначала кладём то, что редко меняется:
• package.json
• package-lock.json
• requirements.txt
• go.mod
А часто меняющееся - в конце:
• исходный код
• конфиги
• assets
🚀 Результат
• быстрее сборки Docker
• быстрее CI/CD
• быстрее деплой
Иногда достаточно просто поменять порядок строк в Dockerfile.
🎯Полезные DEVOPS ресурсы 🚀 Max
Docker в телеграм
Многие Docker-сборки занимают 5–10 минут
даже если вы изменили одну строку кода.
Причина - неправильный порядок инструкций в Dockerfile.
🚫 Плохой Dockerfile
COPY . /app
RUN npm install
RUN npm run build
Если меняется любой файл в коде →
слой
COPY . меняется.Docker сбрасывает кэш и заново запускает:
• npm install
• build
Даже если зависимости не менялись.
⏳ В итоге - каждая сборка почти с нуля.
✅ Правильный Dockerfile
COPY package*.json /app
RUN npm install
COPY . /app
RUN npm run build
Теперь Docker работает умнее:
если изменился только код:
• слой
npm install берётся из кэша • пересобирается только build
⚡ Время сборки
До - ~10 минут
После - ~30 секунд
📌 Золотое правило Dockerfile
Сначала кладём то, что редко меняется:
• package.json
• package-lock.json
• requirements.txt
• go.mod
А часто меняющееся - в конце:
• исходный код
• конфиги
• assets
🚀 Результат
• быстрее сборки Docker
• быстрее CI/CD
• быстрее деплой
Иногда достаточно просто поменять порядок строк в Dockerfile.
🎯Полезные DEVOPS ресурсы 🚀 Max
Docker в телеграм
❤2👍2👎1🔥1
➡️ Архитектура Linux простыми словами
Linux — это не просто система, а набор слоёв, которые работают вместе:
1. 🖥 Hardware
Железо: процессор, память, сеть — всё, что даёт вычислительную мощность
2. ⚙️ Kernel
Ядро системы — управляет ресурсами и напрямую общается с железом
3. 💻 Shell
Интерфейс (например, Bash), который переводит команды пользователя в язык ядра
4. 🛠 Utilities
Системные утилиты (ls, grep, cp) — инструменты для работы с системой
5. 🌐 Applications
Приложения: браузеры, плееры, IDE — то, с чем работает пользователь
📌 Как это работает вместе:
Ты вводишь команду → shell передаёт её ядру → ядро обращается к железу → утилиты/приложения выполняют задачу
Просто, но гениально.
#Linux #DevOps #Backend
Linux — это не просто система, а набор слоёв, которые работают вместе:
1. 🖥 Hardware
Железо: процессор, память, сеть — всё, что даёт вычислительную мощность
2. ⚙️ Kernel
Ядро системы — управляет ресурсами и напрямую общается с железом
3. 💻 Shell
Интерфейс (например, Bash), который переводит команды пользователя в язык ядра
4. 🛠 Utilities
Системные утилиты (ls, grep, cp) — инструменты для работы с системой
5. 🌐 Applications
Приложения: браузеры, плееры, IDE — то, с чем работает пользователь
📌 Как это работает вместе:
Ты вводишь команду → shell передаёт её ядру → ядро обращается к железу → утилиты/приложения выполняют задачу
Просто, но гениально.
#Linux #DevOps #Backend
👍5❤2🔥2
Forwarded from Rust
Вот лишь часть тем, которые сразу зацепили:
- Async в продакшене
- Конкурентность и runtime
- Почему разработчикам на C/C++ стоит переходить на Rust
- no_std — Rust без стандартной библиотеки
- Зачем Rust разработчикам на C#
- Системное программирование и продакшн
- Unsafe Rust - управляемый риск
- Phantom types
- Машины состояний для протоколов
И это только малая часть.
Похоже, туда вложили очень много работы, точно стоит выделить время и пройтись.
github.com/microsoft/RustTraining/
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Forwarded from Golang
🧠 Контейнерный стек - кто за что отвечает
1. Podman
👉 альтернатива Docker без демона, можно запускать контейнеры rootless
🔗 https://podman.io
2. containerd
👉 низкоуровневый runtime, который реально контейнеры
🔗 https://containerd.io
3. CRI-O
👉 runtime специально для Kubernetes
🔗 https://cri-o.io
4. runc
👉 самый низкий уровень (OCI runtime)
🔗 https://github.com/opencontainers/runc
5. Buildah
👉 сборка образов без Docker
🔗 https://buildah.io
6. Kaniko
👉 сборка образов внутри Kubernetes
🔗 https://github.com/GoogleContainerTools/kaniko
7. nerdctl
👉 docker-подобный CLI для containerd
🔗 https://github.com/containerd/nerdctl
8. Rancher Desktop
👉 локальный Kubernetes + контейнеры
🔗 https://rancherdesktop.io
9. OrbStack
👉 быстрый dev environment для macOS
🔗 https://orbstack.dev
10. LXC / LXD
👉 системные контейнеры (почти как VM)
🔗 https://linuxcontainers.org
11. Colima
👉 лёгкая альтернатива Docker Desktop
🔗 https://github.com/abiosoft/colima
12. Lima
👉 лёгкая VM для macOS
🔗 https://github.com/lima-vm/lima
💡 Как это связать
👉 runc → запускает контейнер
👉 containerd / CRI-O → управляют контейнерами
👉 Podman / nerdctl → интерфейс
👉 Buildah / Kaniko → сборка
👉 Rancher / OrbStack / Colima → dev окружение
👉 Lima → VM база
👣 Полезные ресурсы Go 🚀Max
@Golang_google
1. Podman
👉 альтернатива Docker без демона, можно запускать контейнеры rootless
🔗 https://podman.io
2. containerd
👉 низкоуровневый runtime, который реально контейнеры
🔗 https://containerd.io
3. CRI-O
👉 runtime специально для Kubernetes
🔗 https://cri-o.io
4. runc
👉 самый низкий уровень (OCI runtime)
🔗 https://github.com/opencontainers/runc
5. Buildah
👉 сборка образов без Docker
🔗 https://buildah.io
6. Kaniko
👉 сборка образов внутри Kubernetes
🔗 https://github.com/GoogleContainerTools/kaniko
7. nerdctl
👉 docker-подобный CLI для containerd
🔗 https://github.com/containerd/nerdctl
8. Rancher Desktop
👉 локальный Kubernetes + контейнеры
🔗 https://rancherdesktop.io
9. OrbStack
👉 быстрый dev environment для macOS
🔗 https://orbstack.dev
10. LXC / LXD
👉 системные контейнеры (почти как VM)
🔗 https://linuxcontainers.org
11. Colima
👉 лёгкая альтернатива Docker Desktop
🔗 https://github.com/abiosoft/colima
12. Lima
👉 лёгкая VM для macOS
🔗 https://github.com/lima-vm/lima
💡 Как это связать
👉 runc → запускает контейнер
👉 containerd / CRI-O → управляют контейнерами
👉 Podman / nerdctl → интерфейс
👉 Buildah / Kaniko → сборка
👉 Rancher / OrbStack / Colima → dev окружение
👉 Lima → VM база
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Ты думаешь языки программирования - это просто код?
На самом деле у каждого есть своя родина.
C, Java, Go, Rust - все родились в США.
Python - из Нидерландов.
Kotlin - Россия.
Ruby - Япония.
Scala - Швейцария.
Фактически весь стек, на котором держится современный интернет - это глобальная сборка идей со всего мира.
И чем дальше, тем сильнее это смешивается.
Сохрани, чтобы не забыть, и подпишись на канал - здесь объясняю сложные вещи простым языком
https://youtube.com/shorts/GXVX5fyEBVM?si=YgzKPCw-x0XG3doO
На самом деле у каждого есть своя родина.
C, Java, Go, Rust - все родились в США.
Python - из Нидерландов.
Kotlin - Россия.
Ruby - Япония.
Scala - Швейцария.
Фактически весь стек, на котором держится современный интернет - это глобальная сборка идей со всего мира.
И чем дальше, тем сильнее это смешивается.
Сохрани, чтобы не забыть, и подпишись на канал - здесь объясняю сложные вещи простым языком
https://youtube.com/shorts/GXVX5fyEBVM?si=YgzKPCw-x0XG3doO
❤4👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Чек-лист для твоего Linux сервера
Перед тем как ставить проекты и открывать порты - приведи сервер в порядок.
Мой чек-лист на первые 10 минут:
- обнови систему и поставь базовые утилиты
- создай отдельного пользователя и запрети root-login по SSH
- включи firewall (UFW) и открой только нужные порты
- настрой SSH-ключи вместо пароля
- включи авто-обновления безопасности
- зафиксируй таймзону и проверь логи
- поставь fail2ban, чтобы брутфорс не убил сервер за ночь
Это база, которая спасает 90% проблем на проде.
Перед тем как ставить проекты и открывать порты - приведи сервер в порядок.
Мой чек-лист на первые 10 минут:
- обнови систему и поставь базовые утилиты
- создай отдельного пользователя и запрети root-login по SSH
- включи firewall (UFW) и открой только нужные порты
- настрой SSH-ключи вместо пароля
- включи авто-обновления безопасности
- зафиксируй таймзону и проверь логи
- поставь fail2ban, чтобы брутфорс не убил сервер за ночь
Это база, которая спасает 90% проблем на проде.
sudo apt update && sudo apt -y upgrade
sudo apt -y install htop curl wget git ufw fail2ban unattended-upgrades
sudo timedatectl set-timezone Asia/Bangkok
sudo adduser deploy && sudo usermod -aG sudo deploy
sudo ufw allow OpenSSH && sudo ufw allow 80,443/tcp && sudo ufw --force enable
sudo sed -i 's/^#?PasswordAuthentication./
PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#?PermitRootLogin./PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart ssh
sudo dpkg-reconfigure --priority=low unattended-upgrades
sudo systemctl enable --now fail2ban
❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Prometheus на пальцах: как устроен главный инструмент мониторинга 🔍
Разбираем архитектуру Prometheus без лишней теории - только суть:
1. Discovery & Retrieval
Автоматически находит сервисы (например, в Kubernetes) и начинает собирать с них метрики.
2. Prometheus Server
Главный мозг системы - ходит по таргетам, собирает данные, обрабатывает и управляет хранением.
3. TSDB
Встроенная time-series база, где лежат все метрики - быстро отвечает как на realtime, так и на исторические запросы.
4. Pushgateway
Нужен для короткоживущих задач - они пушат метрики перед завершением.
5. Exporters
Адаптеры для сторонних систем - превращают их метрики в понятный для Prometheus формат.
6. Alertmanager
Следит за правилами и шлёт алерты в Slack, почту и другие каналы.
7. PromQL + Grafana
Пишешь запросы, строишь графики, собираешь дашборды.
https://www.youtube.com/shorts/zix3HbQ96qc
Разбираем архитектуру Prometheus без лишней теории - только суть:
1. Discovery & Retrieval
Автоматически находит сервисы (например, в Kubernetes) и начинает собирать с них метрики.
2. Prometheus Server
Главный мозг системы - ходит по таргетам, собирает данные, обрабатывает и управляет хранением.
3. TSDB
Встроенная time-series база, где лежат все метрики - быстро отвечает как на realtime, так и на исторические запросы.
4. Pushgateway
Нужен для короткоживущих задач - они пушат метрики перед завершением.
5. Exporters
Адаптеры для сторонних систем - превращают их метрики в понятный для Prometheus формат.
6. Alertmanager
Следит за правилами и шлёт алерты в Slack, почту и другие каналы.
7. PromQL + Grafana
Пишешь запросы, строишь графики, собираешь дашборды.
https://www.youtube.com/shorts/zix3HbQ96qc
❤2👍2🔥2
🐧 Лайфхак по Linux, который реально экономит время
Команда find умеет не только искать файлы, но и сразу что-то с ними делать через -exec.
Пример:
$ find ~/ -type f -exec ls -lah {} \;
Что происходит:
find находит все файлы и для каждого запускает ls, показывая права, размер и метаданные.
Как работает -exec:
- exec ls - команда, которую нужно выполнить
- -lah - формат вывода (права, скрытые файлы, размеры)
- {} - подставляет имя каждого найденного файла
- \; - завершает команду (экранируем, иначе shell сломает)
Полезно, когда нужно применить одно действие к куче файлов в разных местах.
Важно:
вместо \; можно использовать +
тогда команда будет применяться сразу к группе файлов — быстрее и эффективнее
Пример с несколькими командами:
$ find . -name "*.txt" -exec wc {} \; -exec du -sh {} \;
Считает слова и сразу показывает размер каждого файла.
Сохрани — это база для работы с файлами в Linux.
Команда find умеет не только искать файлы, но и сразу что-то с ними делать через -exec.
Пример:
$ find ~/ -type f -exec ls -lah {} \;
Что происходит:
find находит все файлы и для каждого запускает ls, показывая права, размер и метаданные.
Как работает -exec:
- exec ls - команда, которую нужно выполнить
- -lah - формат вывода (права, скрытые файлы, размеры)
- {} - подставляет имя каждого найденного файла
- \; - завершает команду (экранируем, иначе shell сломает)
Полезно, когда нужно применить одно действие к куче файлов в разных местах.
Важно:
вместо \; можно использовать +
тогда команда будет применяться сразу к группе файлов — быстрее и эффективнее
Пример с несколькими командами:
$ find . -name "*.txt" -exec wc {} \; -exec du -sh {} \;
Считает слова и сразу показывает размер каждого файла.
Сохрани — это база для работы с файлами в Linux.
👍8🔥4❤1
⚡️ Вы слышали про Rust. Знаете, что он быстрый, безопасный и что за ним будущее.
Осталось одно: сесть и выучить.
Этот курс со Stepik- кратчайший путь от «знаю что такое Rust» до «пишу на нём».
6 модулей, 50 уроков, 143 теста. Ownership, borrowing, traits, async, Tokio, Axum, макросы, WASM — всё разложено по полочкам и закреплено практикой.
Никакого видео на 40 минут ради одной мысли. Подробный текст, много кода, реальные задачи после каждого урока. На выходе — портфолио из 10+ проектов: от CLI-утилит до REST API с базой данных.
48 часов действует скидка 55 процентов: stepik.org/course/269250
Осталось одно: сесть и выучить.
Этот курс со Stepik- кратчайший путь от «знаю что такое Rust» до «пишу на нём».
6 модулей, 50 уроков, 143 теста. Ownership, borrowing, traits, async, Tokio, Axum, макросы, WASM — всё разложено по полочкам и закреплено практикой.
Никакого видео на 40 минут ради одной мысли. Подробный текст, много кода, реальные задачи после каждого урока. На выходе — портфолио из 10+ проектов: от CLI-утилит до REST API с базой данных.
48 часов действует скидка 55 процентов: stepik.org/course/269250
❤4👍1🔥1