Задать вопрос
  • Права на volume между хостом и Docker-контейнером: разные UID (www-data / deploy). Как лучше организовать?

    @Sukesada Автор вопроса
    сергей кузьмин, Спасибо без воды, без рефакторинга и тд:)). Сделал через make.
    COMPOSE = docker compose
    COMPOSE_FILE = prod/duogu.yml
    
    UID := $(shell id -u)
    GID := $(shell id -g)
    
    .PHONY: dev prod up build
    
    ## dev / WSL
    dev:
    	@echo "DEV UID=$(UID) GID=$(GID)"
    	WWW_UID=$(UID) WWW_GID=$(GID) \
    	$(COMPOSE) -f $(COMPOSE_FILE) build
    	$(COMPOSE) -f $(COMPOSE_FILE) up -d
    
    ## production (после Ansible)
    prod:
    	@echo "PROD UID=deploy"
    	WWW_UID=$(shell id -u deploy) \
    	WWW_GID=$(shell id -g deploy) \
    	$(COMPOSE) -f $(COMPOSE_FILE) build
    	$(COMPOSE) -f $(COMPOSE_FILE) up -d
    Написано
  • Права на volume между хостом и Docker-контейнером: разные UID (www-data / deploy). Как лучше организовать?

    @Sukesada Автор вопроса
    Да я так сделал. В make что бы жене удобно было одной командой.
    COMPOSE = docker compose
    COMPOSE_FILE = prod/duogu.yml
    
    UID := $(shell id -u)
    GID := $(shell id -g)
    
    .PHONY: dev prod up build
    
    ## dev / WSL
    dev:
    	@echo "DEV UID=$(UID) GID=$(GID)"
    	WWW_UID=$(UID) WWW_GID=$(GID) \
    	$(COMPOSE) -f $(COMPOSE_FILE) build
    	$(COMPOSE) -f $(COMPOSE_FILE) up -d
    
    ## production (после Ansible)
    prod:
    	@echo "PROD UID=deploy"
    	WWW_UID=$(shell id -u deploy) \
    	WWW_GID=$(shell id -g deploy) \
    	$(COMPOSE) -f $(COMPOSE_FILE) build
    	$(COMPOSE) -f $(COMPOSE_FILE) up -d
    Написано
  • Права на volume между хостом и Docker-контейнером: разные UID (www-data / deploy). Как лучше организовать?

    @Sukesada Автор вопроса
    Я, возможно, не до конца понял идею.
    Вы предлагаете «собирать образ с нужными правами», но можете уточнить, какие именно права считаются нужными в этой схеме?
    Сейчас есть конкретные UID/GID:
    хост: deploy = 1000, www-data = 33
    контейнер (alpine): www-data = 82
    Какую комбинацию вы предлагаете считать корректной:
    1000:1000
    1000:33
    1000:82
    33:33
    82:82
    При этом в Linux у файла может быть только один владелец (UID) и одна группа (GID), так что выбрать всё сразу невозможно.
    Если же идея в том, чтобы не запускать код с диска, а класть его в image, то это уже выглядит как смена архитектуры деплоя, а не решение вопроса прав.
    В таком случае хотелось бы понять, как предполагается работать в реальном режиме разработки/поддержки, когда:
    в день бывает 20–50 мелких правок,
    нужен быстрый git pull и моментальный результат,
    пересборка и перезапуск образа на каждую правку выглядит избыточно.
    И даже при immutable image writable-часть (uploads/cache/logs) всё равно остаётся в volume, а значит проблема UID/GID там никуда не исчезает.
    Поэтому интересно понять:
    какую именно проблему решает сборка image в контексте прав, и какой конкретный UID/GID в итоге считается правильным?
    Написано
  • Проблема с ноутбуком, почему внезапно гаснет экран и перезагружается?

    @Sukesada
    Если в Винде. Минус 5 ssd у кого то:)
    Катастрофическое январское обновление Windows 11 ломает ещё и загрузку некоторых ПК.
    Написано
  • Как перестать быть эникейщиком?

    @Sukesada
    Я тоже без коммерческого опыта в IT. Веду собственные проекты в Git и постепенно собираю портфолио, просто потому что мне это реально интересно. Так что прокачаться можно и без комерции.

    Основные репозитории — dev-prod-infra, db-tuning-lab, dockerinfra, Legacy, Monitorig_sh и тд . В данный момент пилю db-tuning-lab я собрал структуру с конфигами и профилями баз данных по версиям, начиная примерно с 2010 года:

    MySQL от 5.5 до 8.4
    MariaDB от 5.5 до 11.x
    PostgreSQL от 9.0 до 17

    Для каждой версии есть скрипты автозапуска, нагрузочные и smoke-тесты, проверки потребления ресурсов и стабильности. Идея простая — быстро поднять нужную версию базы, прогнать нагрузку и посмотреть, как она ведёт себя на практике.

    Параллельно делаю похожие репозитории под PHP и окружение, отдельный репозиторий под Ansible, а также под Zabbix с автоматической установкой и настройкой алертов в Telegram через env-переменные. Использую Prometheus и Grafana для мониторинга.

    Дома у меня две машины на i9-14900K, по 128 гб на каждой и 256 ГБ общей оперативной памяти и 24 ТБ NVMe (Samsung 990 PRO по 4 ТБ). По сути, небольшой домашний дата-центр. Могу спокойно поднимать Kubernetes и экспериментировать с архитектурой и инфраструктурой.

    Официально работаю охранником в Ашане.
    Коммерческого опыта в IT нет — занимаюсь этим из интереса и для прокачки навыков.

    Работаю даже с телефона на работе или планшета: использую редактор кода VS Code в браузере через GitHub для планшета или нетбука, есть удобный редактор именно на телефона. Для доступ по ssh использую Termius - Modern SSH Client. Доступ к инфраструктуре организован через прокси-VM на фронтовой машине, которая проксирует трафик с внешнего шлюза на нужные виртуальные машины. В Termius - Modern SSH Client это настрнаивается через Host Chaining. Удачи в прокачке!
    Написано
  • Как правильно шарить код между PHP-FPM и nginx?

    @Sukesada Автор вопроса
    Если считать Жену заказчиком. Склоняюсь к 3x imege или git + volume.
    Написано
  • Как правильно шарить код между PHP-FPM и nginx?

    @Sukesada Автор вопроса
    Да, там и VPS, по сути, не нужна. Просто жена делает сайт и CRM под свои задачи. Я решил заняться помощью ей. Она вооще прямо на хостинге ковыряла файлы. Сейчас есть git, docker compose dev prod. ci через GitHub action, она на сервер не заходит вобще. Так как vps слабая написал bash скрипт alerta в телегу. Потом наверное Zabbix разверну. Создал playbook ansible, если vps умрет что бы переразвернуть быстро.
    К git жену удалось приучить с трудом. При этом сейчас у меня порядка больше, чем у неё в компании — это средний бизнес, где раньше тратили сотни тысяч в месяц на IT, а сейчас уже пару сотен.
    Жена не it. она поддержка.
    Написано
  • Как правильно шарить код между PHP-FPM и nginx?

    @Sukesada Автор вопроса
    Adamos, Спасибо, это уже более дельный ответ. Тогда попробую посмотреть на готовое решение, например, развернуть WordPress и разобраться, как там всё устроено.
    Но пока работаю с женой. А у не со структурой ппц. Заставить не могу правильно делать выгонит.
    Написано
  • Как правильно шарить код между PHP-FPM и nginx?

    @Sukesada Автор вопроса
    У меня нет опыта в IT, поэтому я могу ошибаться в терминах. Я от силы месяц занимаюсь.
    В моей схеме nginx принимает запросы от браузера и отдаёт CSS, JS и другие статические файлы, а выполнение PHP-кода передаёт в PHP-FPM. Поэтому я назвал nginx фронтом, а PHP-FPM — бэком. При этом я понимаю, что nginx — это веб-сервер, revers proxy и балансировщик нагрузки.
    Если это считается ошибкой, прошу объяснить, в чём именно она заключается и почему.
    Что тогда корректно называть фронтом — CSS, JS, HTML, PHP, сам браузер, глаза человека, почему react фронт?
    Предлагать использовать CMS в тролльной форме вместо ответа по существу — странно.
    Совет «найти настройки nginx под неё и поставить, как написано» не объясняет, как всё работает.
    Разве плохо понимать синтаксис nginx и разбираться, что именно делают его директивы?
    Даже если есть готовые конфиги, мне важно понимать, как и почему они работают, а не просто скопировать.
    У меня нет возможности идти на курсы или обучение.
    Это pet-проекты. Я не могу заставить жену писать «правильно», но могу сам пытаться разобраться и осмыслить, как делать корректно.
    Написано