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

Головоломка. Болты и Гайки

Казуальные, Гиперказуальные, Головоломки

Играть

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

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

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

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

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

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

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

Docker + Программирование

С этим тегом используют

IT Linux IT юмор Программист Разработка Python Картинка с текстом Юмор Все
25 постов сначала свежее
6
zwuck
2 месяца назад

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре⁠⁠

Штош, продолжаем эпопею.

В предыдущих частях Telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть уно  и Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть до  я поведал вам, мои дорогие читатели и подписчики, о выборе направления разработки и инструментах для решения поставленных задач.

Что у нас теперь есть?

Приложение запускается на моем собственном компьютере и я могу писать сам себе какой я бесподобный. Но в этом ли смысл моего приложения, так ли я его хотел использовать? Хмм…

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Хмм...

Я должен подарить свое творение миру, чтобы каждый о нем узнал и затрепетал.

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

  • Обеспечить доступ к приложению на моем компьютере из внешней сети (есть несколько интересных способов решения данной задачи, если будет интересно, напишу и о них);

  • Арендовать VPS (Virtual Private Server ака виртуальный приватный сервер) у любого хостинг провайдера.

Я выбрал второй вариант. Что такое VPS? Если совсем кратко это просто тупо компьютер, доступный из интернета и обеспечением которого занимается хостинг провайдер. Управление VPS у меня реализовано через консоль и выглядит следующим образом.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Я кулхацкер так та

Вы видите все составные части моего приложения:

  • В папке backend находятся все данные и файлы, связанные с «основным» бэкендом;

  • Файл docker-compose.yml отвечает за обеспечение взаимодействия между докер контейнерами, о которых я расскажу далее;

  • В папке frontend находятся все данные и файлы, связанные с фронтендом;

  • В папке nginx находятся все данные и файлы, связанные с инструментом nginx, который реализует веб-сервер и почтовый прокси-сервер;

  • В папке tgbot находятся все данные и файлы, реализующие функционал взаимодействия с ботом в тг.


    Как эти папки с файлами оказались на VPS? Есть три способа, о которых я знаю:

  • Через консоль по SFTP (это транспортный протокол такой) просто тупо копировать все данные;

  • Через инструмент FileZilla, который реализует SFTP, но с удобным графическим интерфейсом;

  • Через git – когда вы заливаете весь ваш код на github или gitlab и уже оттуда скачиваете все на VPS.

Я использую 2 и 3 варианты, так как уже не могу жить без git (это как Ватсон, который без трубки заснуть уже не мог) и некоторые файлы с паролями/секретами, docker-compose, dockerfile копирую через FileZilla.

Теперь все необходимые файлы находятся на VPS и нам необходимо все это вместе запустить. Настало время рассказать про докер, великий и ужасный.

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Кхм…примерно так все у меня и происходит

Не буду сильно углубляться в особенности докер и docker-compose, потому как на ютубе полно видео, в которых достаточно доходчиво объясняется что это и для чего это. Я лишь расскажу вам о том, какие проблемы позволил мне решить докер.

  • Установка базы данных в пару строчек в docker-compose.yml;

  • Установка nginx в пару строчек в dockerfile и docker-compose.yml;

  • Запуск программ и поддержка их в запущенном состоянии. Если руками через консоль запускать программы, то при закрытии консоли, они (программы) тоже закроются (не все).

После правильной сборки и запуска всех контейнеров, через docker-compose.yml, вы можете увидеть такую картинку и обрадоваться, что ничего не отвалилось и все контейнеры запущены и работают. Если совсем тезисно, то каждая строчка это контейнер, в котором запущена всего лишь одна составная часть приложения (nginx для фронтенда, основной бэкенд, база данных и бэкенд для бота).

Разработка telegram мини-приложения в 2025 или как я дошел до жизни такой. Часть тре Telegram, Веб-разработка, Программирование, IT, Docker, VPS, Длиннопост

Докер запущен и готов служить

Теперь ваше приложение доступно по ip адресу в браузере, который получил VPS. И тут у вас может возникнуть справедливый вопрос «А где здесь telegram, если приложение запускается в браузере?». Абсолютно верное замечание и ответ достаточно прост - telegram мини-приложение это сайт, который просто открывается в отдельном окне самого telegram и никакой магии. О том, как реализуется эта процедура и о дальнейших настройках доменного имени и ssl, без чего не возможен запуск именно мини-приложения, я расскажу в последующих частях.

А, ну и конечно, как я уже ранее писал, мини-приложение уже готово и ждет своих пользователей, как говорится welcome t.me/Socionyx_Bot/socionyx.

Буду премного благодарен за обратную связь и замечания по работе текущего мини-приложения.

P.S. я не забыл про твой вопрос мой дорогой nikita17cm и об особенностях «микросерверности», и о разделе бота и основного бэкенда, я обязательно расскажу в следующей части.

Показать полностью 3
[моё] Telegram Веб-разработка Программирование IT Docker VPS Длиннопост
1
1
anetto1502
anetto1502
3 месяца назад
Лига программистов

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

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

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

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

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

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

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

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

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

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

Последнее время я решил попробовать новый подход к организации среды разработки. Обычно я активно использую 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
2
anetto1502
anetto1502
4 месяца назад
Лига программистов

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
5 месяцев назад
Лига программистов

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

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

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

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

Инструкция по установке Docker и Docker Compose на сервере Ubuntu⁠⁠

1. Обновите систему

Убедитесь, что ваша система обновлена до последних версий пакетов.

sudo apt update && sudo apt upgrade -y


2. Установите необходимые зависимости

Установите пакеты, которые потребуются для добавления Docker-репозитория.

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common


3. Добавьте GPG-ключ Docker

Добавьте официальный GPG-ключ Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


4. Добавьте Docker-репозиторий

Добавьте Docker-репозиторий в список источников:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


5. Установите Docker

Обновите список пакетов и установите Docker Engine.

sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

Проверьте установку Docker:

sudo docker --version


6. Убедитесь, что Docker работает

Запустите Docker и добавьте текущего пользователя в группу Docker для выполнения команд без sudo.

sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker $USER

Для применения изменений перезагрузите сессию или выполните:

newgrp docker


7. Установите Docker Compose

Загрузите последнюю версию Docker Compose с официального сайта.

7.1 Узнайте последнюю версию Docker Compose:

curl -s https://api.github.com/repos/docker/compose/releases/latest | grep "tag_name" | cut -d '"' -f 4

Например, это может быть v2.26.0.

7.2 Замените <version> на полученную версию и выполните установку:

sudo curl -L "https://github.com/docker/compose/releases/download/&lt;vers... -s)-$(uname -m)" -o /usr/local/bin/docker-compose

7.3 Сделайте файл исполняемым:

sudo chmod +x /usr/local/bin/docker-compose

7.4 Проверьте установку:

docker-compose --version


8. (Опционально) Настройте автозапуск Docker

Если требуется, чтобы Docker автоматически запускался при старте системы:

sudo systemctl enable docker


Теперь Docker и Docker Compose успешно установлены и готовы к использованию.

Показать полностью
[моё] Linux VPN Программирование IT Программист VPS Docker Разработка
8
10
awfun
11 месяцев назад
Лига программистов

Использование Docker для локального тестирования⁠⁠

Всем привет, работаю java программистом больше 10 лет, в этом посте хотел бы показать, как использовать Docker для локального тестирования приложения.

Средний корпоративный код содержит не очень много логики, но множество интеграций с другими сервисами, несколько баз данных (postgres, кеш в redis, поиск в elastic), очередь (kafka), хранилище документов (s3) итд. Хотелось бы иметь возможность тестировать приложение на локальной машине, без необходимости доставки каждого изменения до общего dev стенда.

Чтобы не разворачивать весь стек технологий на рабочем ноуте, используют Docker контейнеры. Часто образ контейнера содержит минимальную сборку linux (alpine) и сам сервис, например postgres. Внутри контейнера сервис доступен по своему стандартному порту (5432 для postgres), но обратиться напрямую к нему нельзя - на время работы контейнера Docker будет предоставлять внешний порт

Использование Docker для локального тестирования Разработка, Программирование, IT, Docker, Тестирование

Postgres поднят, но порт 5432 доступен только внутри контейнера

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

Для запуска Docker на рабочей машине можно установить Docker desktop. Для поддержки Docker в CI может потребоваться конфигурация dind (docker in docker). При разработке в компании также потребуется указывать корпоративный репозиторий образов. Версия в образе должна соответствовать используемой на продакшене версии сервиса.

Для автоматизации работы с Docker из java тестов я использую библиотеку testcontainers:

@Container
@ServiceConnection
static PostgreSQLContainer<?> postgreSQLContainer = new PostgreSQLContainer<>("postgres");

Здесь postgres - имя контейнера без указания версии. Аннотация Container указывает на необходимость запустить Docker до старта теста. Аннотация ServiceConnection позволяет java узнать внешний порт сервиса и подставить в свой конфиг.

Использование контейнеров позволяет упростить локальное тестирование приложения и является мастхев инструментом. Буду рад ответить на вопросы.

Показать полностью 1
[моё] Разработка Программирование IT Docker Тестирование
1
2
user9315307
user9315307
1 год назад

Немного о пет-проектах⁠⁠

Какой пет-проект выбрать (придумать) для начинающих программистов – это актуальная тема. Где еще можно воплотить теорию, которую ты учил месяцами, и узнать, «тварь ли ты дрожащая», или что-то уже можешь и умеешь.

На самом деле желание сделать что-то свое возникает не только в IT, но эта область требует минимальных финансовых вложений, поэтому пробовать и ошибаться не так страшно и накладно. К сожалению, выбор приходит с опытом, поэтому юные джуны мучаются вопросом, что еще сделать, кроме «todo list». Но когда у тебя есть опыт и в «оффлайне», то найти, куда приложить новые IT-знания, становится значительно проще. Один из моих пет-проектов, воплотив который, за короткий срок я изучил и использовал много новых для себя технологий: Vue, Docker, Nginx, JWT-аутентификацию, ИИ-модели, Mongo, Git, Node.

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

Мой сети - https://t.me/apicraft https://www.youtube.com/@jspytop http://apicraft.ru/

UPD:

https://gitlab.com/slavafumin/smartnote

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