Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
#Круги добра
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Классическая игра в аркадном стиле для любителей ретро-игр. Защитите космический корабль с Печенькой (и не только) на борту, проходя уровни.

Космический арканоид

Арканоид, Аркады, Веселая

Играть

Топ прошлой недели

  • SpongeGod SpongeGod 1 пост
  • Uncleyogurt007 Uncleyogurt007 9 постов
  • ZaTaS ZaTaS 3 поста
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
1
anetto1502
anetto1502
5 месяцев назад
Лига программистов

Анализируем размер проекта⁠⁠

Среди метрик качества проекта теоретики выделяют число LOC == lines of code, измеряемое обычно в тысячах.

Для измерения размера проекта в строках кода есть интересный проект cloc, запускаемый в том числе в docker (зачем docker?).

Cloc для заданного каталога анализирует все файлики, по расширению и содержимому файлов определяет язык программирования, считает число пустых строк, строк с комментариями и строки кода. На мой взгляд, удобнее бы смотреть на итоговую сумму, но я заставить его выводить total не смог.

Анализируем размер проекта IT, Программирование, Docker

Пример для одного легаси проекта

А теперь интересное. LOC является очень противоречивой метрикой для контроля. С одной стороны, чем меньше проект, тем лучше. С другой — сокращение размера кода может вредить его читаемости.

Пост из канала DevFM.

[моё] IT Программирование Docker
26
6
MajorLettuce
MajorLettuce
5 месяцев назад
Лига программистов

Я перенес среду для разработки в облако и значительно упростил себе процесс работы⁠⁠

Последнее время я решил попробовать новый подход к организации среды разработки. Обычно я активно использую Docker 🐳 — он удобен, когда проект состоит из нескольких сервисов, например, базы данных (PostgreSQL, Redis) и других инструментов.

Языки вроде Python предлагают решение "виртуального окружения", но на мой взгляд — это все равно костыли. С другой стороны есть Docker.

Docker позволяет быстро развернуть изолированное окружение, и что самое крутое — сделать это можно где угодно, без лишних настроек. Но есть проблема: на Windows он работает не так стабильно, как хотелось бы. Иногда настолько, что проще снести систему и поставить заново.

Я перенес среду для разработки в облако и значительно упростил себе процесс работы Программирование, IT, Разработка, Linux, Docker

Поэтому я решил попробовать другое решение:

  • Арендовал облачный сервер

  • Настроил всю среду разработки прямо там

  • Теперь подключаюсь к нему по SSH через VS Code (на самом деле Cursor, но суть та же)

В итоге вся работа идёт на сервере, независимо от мощности моего устройства. Я ожидал лагов и сетевых тормозов, но всё работает удивительно плавно. Теперь мне не важно, с какого устройства заходить — главное, чтобы был интернет и возможность запустить VS Code или Cursor.

Закинул RSA ключ и работаешь как на локальной машине.

Еще одна классная фича конкретно VS Code - подобных редакторов: они могут пробросить порты на локальный хост. Поэтому можно поднять базу данных на сервере на порту 5432, а подключаться к нему через клиент под Windows по адресу 127.0.0.1:5432.

Получается, что даже слабый ноутбук теперь может быть удобным инструментом для разработки. Если Docker на Windows вас тоже достал, возможно, вам зайдет такой подход

Показать полностью 1
Программирование IT Разработка Linux Docker
37
255
sadnomad
5 месяцев назад
IT-юмор

Эй, грузчик, загрузи мне контейнер⁠⁠

Эй, грузчик, загрузи мне контейнер
IT юмор Docker Вакансии Скриншот
29
DELETED
6 месяцев назад

Замена wildcard сертификата .mydomain.ru⁠⁠

Итак мы получили архив с ssl сертами для сервисов. Склеиваем 3 сертификата в в один:

склеиваем 3 сертификата в один fullchain.crt

cat mydomain_ru_2024_05_23.crt >> fullchain.crt

cat intermediate_pem_globalsign_ssl_dv_wildcard_1.crt >> fullchain.crt

cat root_pem_globalsign_ssl_dv_wildcard_1.crt >> fullchain.crt

Далее идем по ssh на наш сервис. Рассмотрим пример с хранилищем javakeystore:

Копируем сюда серты (предварительно меняем key.txt в формат .pem privkey.pem в linux)
/etc/nginx/mydomain_2025/

#Просмотр хранилища keystore
keytool -list -keystore keystore.bin

#Экспортируем в формат pkcs12 наш серт + ключ

openssl pkcs12 -export -in /etc/nginx/mydomain_2025/fullchain.crt -inkey /etc/nginx/mydomain_2025/privkey.pem -out keystore.new.2025.p12 -name tomcat

#Выполняем импорт (пароль тут называется 'password')
keytool -importkeystore -deststorepass password -destkeypass password -destkeystore keystore.new.2025.bin -srckeystore keystore.new.2025.p12 -srcstoretype PKCS12 -srcstorepass password

#Меняем права согласно сервису

chown wikisu:wikisu keystore.new.2025*

#Создаем символическую ссылку на новый javakeystore
ln -s keystore.new.2025.bin keystore.bin

#Удаляем старый keystore
rm keystore.bin

#Если сервис в докер compose (стопаем\стартуем)
docker-compose down

docker-compose up -d
#Мониторим логи

docker logs wiki-web -f

Показать полностью
Java Linux Docker Текст
3
3
anetto1502
anetto1502
6 месяцев назад
Лига программистов

Docker в каждый дом⁠⁠

Стрим FastAPI+Docker породил бурное обсуждение, а нужен ли докер в таком небольшом проекте. Наш ответ — обязательно! В современном мире разработки docker является такой же неотъемлемой частью разработки, как и git. Есть некоторые области без докера, например, разработка GUI, операционных систем или микроконтроллеров. Но весь backend, frontend и data science без докера вообще не живут. Давайте посмотрим, какие прямые выгоды даёт докер:

1. Всегда понятно, как запустить код. Dockerfile является однозначной инструкцией по сборке проекта. Bus-factor не мешает жить.

2. Легко включать новых людей в разработку. Инструкция в ридми сводится к docker build & docker run, что понятно даже junior-разработчикам.

3. Деплой можно производить где угодно. В пару команд можно запуститься на компе разработчика, на test или prod сервере, у заказчика на ноутбуке – и везде всё будет одинаково, нужен только сам Docker.

4. Проект одинаково себя ведёт везде. Это упрощает воспроизведение проблемы и сокращает время на багфикс.

5. Нет проблем с конфликтом зависимостей-библиотек. Вы можете на одной машине запустить проекты с условным django 3 и django 4, они никак друг другу не помешают.

6. Легко поднимать зависимости-компоненты. Для любой базы данных берётся готовый докер-образ, меняется конфиг и в одну команду запускается. С выходом на docker compose можно одной командой поднимать сборную солянку из backend, frontend, базы данных, nginx и Let's Encrypt.

7. Просто откатываться к старой версии. Версионирование докер-образов позволяет запустить новую версию, и, если что-то пошло не так, откатиться назад за десятки секунд.

8. Понятные внешние эффекты проекта. В команде docker run указаны проброшенные в контейнер каталоги и порты. Всё остальное изолированно.

В общем, со всех сторон одна польза. Минусы? Требуется изучить новый инструмент и best practices. Кажется, на этом всё. Даже дополнительных накладных расходов на виртуализацию нет. И помните – если docker вам мешает, скорее всего, вы что-то делаете неправильно.

Для запуска нескольких связанных контейнеров пользуйтесь compose, гайд тут. Если ещё нужно управлять множеством серверов, то посмотрите на kubernetes.

Показать полностью
[моё] Программирование IT Docker Linux Текст
35
werwolfshtein
8 месяцев назад
Лига программистов

Титан веб разработки⁠⁠

Я счас одному чуваку сайт-визитку запихал в докер, добавил к нему nginx, прикрутил сверху эластиксёрч с мемкэчем и залил всё это дело на vps.

А потому что могу!

[моё] Web-программирование Web Программист Python IT юмор IT Программирование Docker Текст
19
4
Gordok
8 месяцев назад

Технология контейнеризации Docker: ускоряем развертывание приложений⁠⁠

Технология контейнеризации Docker: ускоряем развертывание приложений Docker, IT, Облачные технологии, Хостинг, Длиннопост

Cегодня поговорим о том, как Docker упрощает жизнь разработчикам.

Идея Docker с самого начала заключалась в том, чтобы упростить процесс переноса и запуска приложений. Команда разработчиков из компании dotCloud (ныне Docker, Inc.) работала над созданием инструмента, который позволял бы упаковывать приложение и запускать его в любом месте.

Вскоре стало понятно, что с помощью Docker можно упаковывать практически все: от отдельных микросервисов до больших стеков с множеством компонентов. Это значительно упростило процесс переноса приложений, избавив от необходимости повторно настраивать зависимости и конфигурации на каждом новом сервере.

Развертывание приложений стало намного быстрее и проще, а запуск необходимых сервисов — более предсказуемым и контролируемым. Вы создаете контейнер один раз, запускаете его где угодно и он работает везде. Это особенно важно для развертывания приложений в облаке или на различных серверах.

Проблемы, которые решает Docker

Конфликты зависимостей и версий

Управление зависимостями приложений часто становится сложной задачей. Разные приложения требуют разных библиотек, а часто и разных версий одних и тех же библиотек. При установке одной версии, слетает другая, что приводит к конфликтам и нестабильности системы.

Также распространенная проблема — различия между средой разработки и продакшн‑средой, когда нужна определенная версия Node.js или PHP, которой нет на вашей машине.

Docker решает эти вопросы, позволяя запускать приложения в изолированных контейнерах, каждый из которых имеет свои собственные зависимости и конфигурации. С помощью Docker вы упаковываете ваше приложение, все необходимые библиотеки и настройки в один архив — Docker‑контейнер. И запускаете его на любом компьютере или сервере, поддерживающем Docker, независимо от операционной системы и того, что установлено на компьютере.

Управление ресурсами и снижение нагрузки

Установка и запуск разных баз данных и сервисов на ПК может вызвать множество проблем. Во‑первых, некоторые базы данных требуют использования одного и того же порта, и одновременно их запустить не получится. Во‑вторых, установка всех этих зависимостей может перегрузить систему: оперативная память и дисковое пространство быстро заканчиваются, и в итоге машина начинает работать медленно и нестабильно.

С Docker можно просто взять базу данных нужной версии, запустить и подключиться к ней. Когда она больше не нужна, ее можно выключить и удалить, а при необходимости снова запустить.

Запуск сервисов без сложных скриптов и настроек

Когда вы пишете код, часто могут потребоваться различные зависимости: база данных, кэширующий сервис или даже целая система, такая как Kafka или RabbitMQ — брокер сообщений, который помогает обмениваться данными между разными компонентами системы. Конечно, можно запустить их и без использования контейнеров, но настройка этих зависимостей может быть довольно сложной, занимать много времени и превращать рабочее место в сервер.

С Docker же все становится проще: даже сложные приложения, требующие множества библиотек и настроек, можно легко запустить одной командой.

Например, для Kafka команда будет выглядеть так:

Технология контейнеризации Docker: ускоряем развертывание приложений Docker, IT, Облачные технологии, Хостинг, Длиннопост

А для RabbitMQ:

Технология контейнеризации Docker: ускоряем развертывание приложений Docker, IT, Облачные технологии, Хостинг, Длиннопост

Эти команды запускают соответствующие сервисы в Docker‑контейнерах.

Запуск и управление микросервисами

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

Микросервисы — это небольшие, независимые компоненты, которые работают вместе, образуя единую систему.

Например, интернет‑магазин может состоять из микросервисов для обработки заказов, платежей, управления товарами и т. д. Раньше для запуска каждого такого микросервиса требовалась отдельная виртуальная машина, что создавало сложности с управлением и масштабированием. Docker решил эту проблему.

Docker упаковывает каждый микросервис вместе со всеми необходимыми зависимостями в отдельный контейнер. Эти контейнеры легко запускаются и масштабируются. Если, например, сервис обработки платежей перегружен, можно быстро запустить еще несколько его экземпляров в Docker‑контейнерах, увеличив пропускную способность.

Возможность быстрого тестирования

Еще один из больших плюсов использования Docker в том, что вы легко можете проверить работу новых технологий и программ. Если выходит новое ПО или сервис, вы просто запускаете его в контейнере и сразу начинаете тестировать. Это особенно удобно, когда нужно быстро оценить, насколько новый софт подходит для ваших задач.

Эффективность Docker в развертывании приложений

Хотя точные цифры по ускорению развертывания приложений с использованием Docker зависят от многих факторов (размер приложения, сложность конфигурации и т. д.), он заметно сокращает время и усилия, необходимые для развертывания, в среднем в 1,5–2 раза.

Согласно исследованию CNews Analytics и «Инфосистемы Джет», 56% российских компаний‑разработчиков из рейтинга РБК 500, активно используют контейнеры. Чемпион среди опрошенных отраслей — финансовый сектор, 73%. Среди них 45% используют контейнеры в продуктиве и 23% — в тестовых средах. (источник).

Как показал ежегодный опрос Stack Overflow, 59% разработчиков использовали Docker в своей работе в 2024 году. (источник).

Технология контейнеризации Docker: ускоряем развертывание приложений Docker, IT, Облачные технологии, Хостинг, Длиннопост

Как Dockhost помогает в ускорении развертывания

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

Чтобы не тратить время на поднятие инфраструктуры и настройку серверов, можно воспользоваться платформой Dockhost и сфокусироваться на развертывании своего приложения. Встроенный функционал платформы автоматизирует сборку, тестирование и запуск Docker‑контейнеров.

Технология контейнеризации Docker: ускоряем развертывание приложений Docker, IT, Облачные технологии, Хостинг, Длиннопост

Dockhost ускоряет процесс развертывания приложения из исходного кода с помощью встроенного функционала Push‑to‑Deploy. Например, у вас есть Git‑репозиторий с вашим приложением и Dockerfile, в котором описаны все необходимые зависимости и инструкции для запуска. Вы можете подключить свой репозиторий к платформе и как только вы пишете код и сохраняете изменения в репозитории, Dockhost автоматически подхватывает эти изменения, собирает приложение и запускает его. Вам не нужно ждать, следить за процессом сборки и переключаться на сервер для обновления новой версии приложения — все происходит автоматически.

Заключение

Технология контейнеризации избавляет от проблемы «работает у меня, но не работает у вас»: приложение, упакованное в контейнеры, будет работать одинаково как на вашем компьютере, так и на сервере.

Docker помогает:

  • быстро развертывать приложения и сервисы;

  • решать проблемы конфликтов зависимостей, разных версий библиотек и языков программирования, запуская приложения в изолированных контейнерах;

  • управлять ресурсами, снижая нагрузку на компьютер и оптимизируя использование памяти и процессора;

  • перемещать контейнеры между различными серверами и облачными платформами без изменения кода или настроек;

  • запускать приложения и сервисы с помощью простых команд;

  • управлять микросервисами, легко их развертывать и масштабировать;

  • тестировать новый софт в условиях, близких к реальным.

Показать полностью 4
Docker IT Облачные технологии Хостинг Длиннопост
8
Вопрос из ленты «Эксперты»
PunkoreD
8 месяцев назад

Вопрос о нынешних способах авторизации в VPN⁠⁠

Привет всем! Собираюсь установить OpenConnect VPN (он же AnyConnect) на докере дома и немного завис на теме того, какой способ авторизации настроить. Мой дом конечно не энтерпрайз, но хочется чтобы всё было автономно и максимально защищено. Поэтому возник вопрос, а какой всётаки способ авторизации выбрать и что будет разумно+не сильно запарно по времени чтобы это настроить и впоследствии поддерживать. Расматривались следующие варианты:

  1. Авторизация сертификатами. Конечно было бы круто чтобы каждый клиент (читай девайс) имел свой собственный сертификат. Но для этого нужно:

    - какой-то механизм слежения и обновления сертификатов которые подходят к концу пригодного времени. Сам Openconnect не умеет этого.

    - механизм раздачи сертификатов на конечные девайсы. Что-то вроде MDM которое умеет раздавать сертификаты прямо в хранилище сертификатов девайсов (Certificate Store, Credential Storage), будь то Windows пк или Android смартфон. Пока что не нашел на опенсоурсе продукт который поддерживает сразу несколько клиентских платформ, который поддерживается сегодня разработчиками и хорошо работает на докере.

  2. Radius - с использованием комбинации username+password. Плюс в том что это легко настроить. Минус в том что пароли устаревают. Часто менять их на новые совсем нет желания. К тому же это подлежит риску брутфорса. Можно конечно подключить MFA, но я уже терял телефоны и знаю к каким печалям это приводит.

3. SSO через OAuth и ему подобных. Можно, но для домашней обстановки, с количеством сервисов равному 1, имеет мало смысла.

4. AD/LDAP. Опять же, можно настроить. Но клиентские девайсы это Windows PC, Linux PC и андроид телефон. Объеденить их всех в одну структуру кажется мне сложным (или может я не прав?).

Есть ещё другие способы как Kerberos, ZTNA, и другие. но я не знаю насколько это имеет смысл для домашнего пользования.

Поэтому вопрос в студию: какой способ используете вы и что можете посоветовать? Я не специалист по vpn или по безопасности. Я лишь хочу настроить безопасный и удобный в пользовании vpn у себя дома.

Показать полностью
[моё] Linux Вопрос VPN Авторизация Docker Спроси Пикабу Текст
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии