• Как сделать репозиторий, который копирует файлы других репозиториев?

    @MishaXXL Автор вопроса
    Если я удалю .git папки во вложенных папках, то мне потом придется каждый раз делать инициализацию и после пула снова удалять или такое достаточно сделать один раз для основной папки, а после инициализации основной, он уже не будет ругаться, что я сделать еще другие инициализации репозиториев во вложенных?

    Вообще были планы )
    Идея заключалось в том, что при каждом новом git pull из вложенных папок, он отслеживал изменения
    Но возможно я просто выбрал неправильный подход к мульти репозиторию
    Вы же не собираетесь отслеживать те тысячи файлов, которые внутри вложенных подкаталогов .git?


    Или по какому принципу нужно построить работу основной папки проекта, чтобы при клонировании ее из гита, инициализация и обновление вложенных папок с репозиториями была удобна?
    Написано
  • Как сделать репозиторий, который копирует файлы других репозиториев?

    @MishaXXL Автор вопроса
    Я могу сделать какое-то исключение, чтобы он игнорировал .git и видел все файлы, кроме него, тем самым считал их просто папкой с файлами, а не репозиторием?

    В .gitignore такое не сработало, всё равно считает их за репозитории
    /client/.git
    /server/.git
    Написано
  • Как инициализировать пустой репозиторий в существующую папку?

    @MishaXXL Автор вопроса
    Спасибо!

    Подскажи пожалуйста, почему пуш делается обязательно со свойством --set-upstream?

    Что делает команда sudo add-apt-repository -y ppa:git-core/ppa
    И для чего -y в sudo apt-get install git -y
    sudo add-apt-repository -y ppa:git-core/ppa
    sudo apt-get update
    sudo apt-get install git -y
    Написано
  • Каким образом лучше добавить certbot в docker для nginx?

    @MishaXXL Автор вопроса
    chupasaurus, подскажи пожалуйста, этот роут как и в какой момент срабатывает?
    location /.well-known/acme-challenge {
        root /etc/letsencrypt_docker/challenges;
    }


    Если я правильно понял, то сертбот в докере создает сертефикат и от туда он его копирует в системную папку, а из этой папки контейнер nginx его копирует к себе в локальную папку?
    certbot:
        image: certbot/certbot
        volumes:
          /etc/letsencrypt_docker:/etc/letsencrypt
        command: ["renew"]


    Я так полагаю эта команда создает нам сертификаты
    docker-compose run certbot certonly --web-root=/etc/letsencrypt/challenges -d domain


    Но как и когда nginx запустит свой логику с этим роутом?
    /.well-known/acme-challenge
    Написано
  • Каким образом лучше добавить certbot в docker для nginx?

    @MishaXXL Автор вопроса
    chupasaurus, подскажите пожалуйста, по какому принципу работает это условие в nginx
    location /.well-known/acme-challenge {
        root /etc/letsencrypt_docker/challenges;
    }


    И откуда у нас будут браться сертефикаты в /etc/letsencrypt_docker, если мы выполняем для запуска всего только докер команду?
    certbot:
        image: certbot/certbot
        volumes:
          /etc/letsencrypt_docker:/etc/letsencrypt
        command: ["renew"]


    docker-compose run у нас выполняет команды уже в рабочем кластере?
    docker-compose run certbot certonly --web-root=/etc/letsencrypt/challenges -d domain
    Написано
  • Как настроить контейнер для подключения к Postgres "connect ECONNREFUSED 127.0.0.1:5432"?

    @MishaXXL Автор вопроса
    Подскажи, почему только в подключении к БД нужно указывать hostpostgres, а при обращении между друг к другу клиента к серверу, то localhost?

    По такой логике вроде тут тоже должно быть http://postgres:3000/api/v1/users, но работает со стандартным запросом
    const data = await fetch('http://localhost:3000/api/v1/users').then(data => data.json()).catch(err => err.message)


    server:
        container_name: server_container
        image: rest-api-server
        ports:
          - 3000:3000
        networks:
          - postgres
        restart: unless-stopped
        depends_on:
          - postgres
    
      client:
        container_name: client_container
        image: rest-api-client
        ports:
          - 5173:5173
        networks:
          - postgres
        restart: unless-stopped
    Написано
  • Почему докер выдает ошибку open() "/etc/nginx/sites-enabled/default" failed (2: No such file or directory) in /etc/nginx/nginx.conf?

    @MishaXXL Автор вопроса
    Lynn «Кофеман», спасибо!!
    Не сочтите за дерзость, буквально последний вопрос )

    Получается настройки не совсем нужны?
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;


    И папки sites-enabled и sites-available не нужны
    Получается стоит оставлять только папку conf.d и там хранить все конфиги?
    include /etc/nginx/conf.d/*.conf;

    user www-data;
    worker_processes auto;
    pid /run/nginx.pid;
    include /etc/nginx/modules-enabled/*.conf;
    
    events {
    	worker_connections 768;
    	# multi_accept on;
    }
    http {
    
    	sendfile on;
    	tcp_nopush on;
    	tcp_nodelay on;
    	keepalive_timeout 65;
    	types_hash_max_size 2048;
    
    	include /etc/nginx/mime.types;
    	default_type application/octet-stream;
    
    	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    	ssl_prefer_server_ciphers on;
    
    	access_log /var/log/nginx/access.log;
    	error_log /var/log/nginx/error.log;
    
    	gzip on;
    
    	include /etc/nginx/conf.d/*.conf;
    	include /etc/nginx/sites-enabled/*;
    }
    Написано
  • Почему докер выдает ошибку open() "/etc/nginx/sites-enabled/default" failed (2: No such file or directory) in /etc/nginx/nginx.conf?

    @MishaXXL Автор вопроса
    Спасибо, подскажи пожалуйста.
    А как сделать ссылку из сервера такой root ../templates/default;?
    Что бы он файл из - ./nginx/templates/:/etc/nginx/templates/:ro брал
    65aec22bef6c6204979558.png

    Не смотря на такие настройки, он почему-то подтягивает на загрузку index.html, который по умолчанию с nginxидет, а не ошибку, что такого пути нет

    server {
    	listen 80 default_server;
    	listen [::]:80 default_server;
    
    	root ../templates/default;
    
    	index index.html index.htm index.nginx-debian.html;
    
    	server_name _;
    
    	location / {
    		try_files $uri $uri/ =404;
    	}
    }


    Или мои volumesне работают и докер запускается без ссылок на мои папки?
    Написано
  • Почему докер выдает ошибку open() "/etc/nginx/sites-enabled/default" failed (2: No such file or directory) in /etc/nginx/nginx.conf?

    @MishaXXL Автор вопроса
    Сергей Соловьев, не совсем понял, как это связанно, если /etc/nginx/nginx.conf не относится к синхронизации /etc/nginx/sites-enabled
    nginx: [emerg] open() "/etc/nginx/sites-enabled/default" failed (2: No such file or directory) in /etc/nginx/nginx.conf:31
    Написано
  • Как перезагрузить контейнер в docker-compose с обновлением volumes?

    @MishaXXL Автор вопроса
    сергей кузьмин, допустим, имеем возможность остановить весь кластер
    Как очистить volumes только одного сервиса, чтобы при запуске docker-compose up, у нас volumes только этого сервисам переинициализировался?
    Написано
  • Как перезагрузить контейнер в docker-compose с обновлением volumes?

    @MishaXXL Автор вопроса
    Сергей Соловьев, а как обновить контейнер полностью?
    Стереть его volumesи запустить контейнер с новым конфигом
    Написано
  • Как перезагрузить контейнер в docker-compose с обновлением volumes?

    @MishaXXL Автор вопроса
    docker compose up -d service сотрет старые volumesи запустит контейнер с новой инициализацией всех volumes?

    А в примерах почему nginx указывает ссылку только на файлы, а не сразу на папку nginx, ведь так же проще было бы
    Или, если указывать всю папку, то контейнер будет медленней работать?
    Написано
  • Как настраивается обработка роута, где возможна строка запроса?

    @MishaXXL Автор вопроса
    т.е. все эти манипуляции нужно по прежнему делать в readAll, что мы запрашиваем все записи, что часть их в определенном диапозоне?

    Так мне для пагинации нужно значение количества всех записей или про что вы?
    Так же у вас ошибка - в методе readAll не может быть и получения всех пользователей, и получения их количества (count)
    Написано
  • Как при использовании абстрактного класса перезаписать статический метод?

    @MishaXXL Автор вопроса
    Dmitry Roo, секундочку
    Подключение к БД у нас пишется через синглтон, верно?
    У нас есть метод обработки запросов handle
    Что бы в нем использовать инъекцию зависимости, нам нужен абстрактный класс или интерфейс для ссылки на него по проверке передаваемого аргумента, так же?
    Для передачи нам в handle аргумента, который будет соответствовать нашему абстрактному классу

    В итоге мы получаем
    public void handle(AbstractSql sql) { ... }

    Ведь если мы будем использовать, то мы привяжемся к определенному классу, в данном случае Sql
    public void handle(Sql sql) { ... }
    Написано
  • Как при использовании абстрактного класса перезаписать статический метод?

    @MishaXXL Автор вопроса
    сергей кузьмин,
    non-static variable this cannot be referenced from a static context return this;
    Написано
  • В каком контексте значение класса String является неизменяемым в отличии от StringBuilder?

    @MishaXXL Автор вопроса
    Если я правильно понял, то Stringэто массив символов с ограниченной длинной, чтобы экономить память и при каждой конкатенации мы создаем новый массив.
    А StringBuilderэто массив без ограничения по длине и по этому он более ресурсоемкий?
    Написано
  • Как типизировать fetch без as?

    @MishaXXL Автор вопроса
    Что-то мне подсказывает, что
    Res | anyэто всё равно, что просто написать any
    Написано
  • Как правильно обрабатывать SQLException?

    @MishaXXL Автор вопроса
    mayton2019, допустим, две ситуации
    1. Мне вылетела SQLException с тем, что нет подключения к БД (упала база или перезапускают ее)
    Я обнуляю состояние подключения к БД и при следующем запросе его инициализирую снова

    2. Мне вылетает ошибка SQLException с тем, что некорректный запрос или что-то подобное
    Мне снова на всякий случай делать обнуление подключения к БД?
    Т.к. я не знаю точно, что за ошибка, ведь у нас теперь один общий обработчик на все ошибки
    Написано
  • Как правильно обрабатывать SQLException?

    @MishaXXL Автор вопроса
    Так, а как их обрабатывать?

    Например, что у меня пропало подключение к БД, чтобы я обнулил переменную соединения.
    И когда неправильный запрос, чтобы я в ответ отправил текст с информацией о некорректности ввода запроса, но при этом соединение к БД не трогал.

    И если коды всегда разные, как настроить обработку так, чтобы быть уверенным в том, что обработка ошибок сработает корректно?
    Написано
  • По какой логике работает метод getInstance?

    @MishaXXL Автор вопроса
    Дмитрий Кинаш, почему, если после первой инициализации у нас INSTANCEуже не nullи операция new Singleton() больше не будет выполнена.
    Написано