• Как прописать в docker-compose для VUEJS авторестарт при изменении файлов?

    @domanskiy Автор вопроса
    Нашел решение. 3 дня потратил
    источник
    и еще
    environment:
          - CHOKIDAR_USEPOLLING=true

    в папке pprint_vue есть файл
    .dockerignore
    .gitignore
    .git
    .idea
    node_modules


    В итоге выглядит следующим образом.
    Dockerfile
    FROM node:lts-alpine as build
    
    ARG APP_DIR=app
    WORKDIR /${APP_DIR}
    ENV PATH /app/node_modules/.bin:$PATH
    
    COPY package.json ./
    RUN npm install npm@latest
    RUN npm install   --no-progress --ignore-optional
    RUN npm install @vue/cli -g
    
    EXPOSE 5000
    
    CMD ["npm", "run", "serve"]


    docker-compose.yml

    version: '3.9'
    
    #настройка сети между контейнерами.
    networks:
      static-network:
        ipam:
          driver: default
          config:
            - subnet: 10.5.0.0/16
        
    services:
    
      database:
        image: postgres:13 # имя контейнера
        container_name: "postgres_cont"
        ports:
          - "6532:5432"
        env_file:
          - pg-env.env # configure env postgres
        volumes:
          - E:\docker\volumes\postgres:/var/lib/postgresql/data
        restart: unless-stopped #рестарт если контейнер "вылетает"
        logging: #отключаем логирование в консоли
          driver: none
        networks:
          static-network:
            ipv4_address: 10.5.0.5
    
      pgAdmin:
        image: dpage/pgadmin4 #имя контейнера
        container_name: "pgAdmin_cont"
        ports:
          - "5555:80"
        env_file:
          - pgadmin-env.env # configure pgAdmin
        depends_on:
          - database
        volumes:
          - E:\docker\volumes\pgAdmin:/var/lib/pgadmin
        restart: unless-stopped #рестарт если контейнер "вылетает"
        logging: #отключаем логирование в консоли
          driver: none
        networks:
          static-network:
            ipv4_address: 10.5.0.8
    
      app_fastapi:
        # image: python:3.8
        container_name: "app_FastAPI" #имя контейнера
        build:
           context: ./FastAPI
           dockerfile: Dockerfile
        volumes:
          - ./FastAPI:/app_fastapi
        ports:
          - 8000:8000
        depends_on:
          - database
        entrypoint: ["python", "main.py"]
        restart: unless-stopped #рестарт если контейнер "вылетает"
        networks: #принудительно задаём IP
          static-network:
            ipv4_address: 10.5.0.6
    
    
      vue_frontend:
        container_name: vue_ui
        build: 
          context: ./pprint_vue
          dockerfile: Dockerfile
        stdin_open: true
        tty: true
        environment:
          - CHOKIDAR_USEPOLLING=true
        volumes:
          - ./pprint_vue:/app
          - /app/node_modules
        ports:
          - "5000:5000"
        restart: unless-stopped #рестарт если контейнер "вылетает"
        depends_on:
          - app_fastapi
        networks: #принудительно задаём IP
          static-network:
            ipv4_address: 10.5.0.10
    
    volumes:
    
      pprint_vue:
        name: pprint_vue
    
      FastAPI:
        name: FastAPI



    Т.к. поменял стандартный порт для VUE. package.json немного изменён
    package.json

    "scripts": {
            "serve": "vue-cli-service serve --port 5000",
            "build": "vue-cli-service build"
        },

    Ответ написан
    4 комментария
  • Правильно ли организовал связи сущностей?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Если вас в схеме есть связь один-к-одному, то, с большой вероятностью, вы что-то сделали неправильно.
    В данном случае нет необходимости в отдельной таблице `refferal`, достаточно поля `referrer_id` в таблице `users`, так как пользователь может зарегистрироваться только по одному приглашению.
    Аналогично, не имеют смысла таблицы `inventory` и `item_inventory`, достаточно поля `user_id` в таблице `items`.
    Ответ написан
    3 комментария
  • Как обезопасить себя при создании ООО на двоих?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Лучше по таким вопросам обратится напрямую к хорошему юристу, а то насоветуют сейчас тут мамкины юристы...
    Ответ написан
    1 комментарий
  • Где в скрипте лишний / неправильный return?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    В каждом методеу вас всего 1 return.
    В методе getText
    return $this->result('Hello World');
    Который приводит к вызову метода result
    А он уже возвращает
    return ['result' => 'successful', 'info' => $text];


    return у вас 1 в итоге. Return - это конечная станция функции. И если на конечной станции указана другая функция - то она будет выполнена, а результатом станет уже значение, возвращаемое "дочерней" функции.
    Ответ написан
    3 комментария
  • Как работать с rest api используя json и пользовательский ввод одновременно?

    @AstraVlad
    Финансист, консультант, программист-любитель
    Это называется: "Написать фронтэнд к имеющемуся бэкенду".

    Делаем html-форму, берем ЖабаСкрипт, пишем обработчик события отправки формы, в нем вместо дефолтного поведения отправляем html-запрос на ваш сервер, где крутится бэк, в ответе получаем данные, генерируем из них таблицу, добавляем ее на страничку. И вуаля: вы фуллстэк разработчик! :).
    Ответ написан
    5 комментариев
  • Как правильно начать изучение linux?

    @q2digger
    никого не трогаю, починяю примус
    Пока вы не пересядете полностью на линукс, пока система не станет вашей обыденной повседневностью - вы нифига не изучите. Банально стимула не будет.
    Ответ написан
    Комментировать
  • Доступ к https из Windows XP?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Следите за трафиком.
    Проблема комплексная. Первое это библиотеки, а второе это набор корневых сертификатов.
    Возможно поможет перенос этих корневых сертификатов из новых систем.
    Ну и все же это жуткий легаси
    Ответ написан
    Комментировать
  • Оптимизация запросов БД Django?

    @deliro
    select_related, prefetch_related, django-mptt
    Ответ написан
    Комментировать
  • Что означает надпись в истории браузера RUMTXL115B28613?

    Это история вкладок с другого устройства, где вы логинились в браузер.
    RUMTXL115B28613 - имя компьютера.
    Ответ написан
    1 комментарий
  • Как оффнуть python приложение?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    kill -9 <PID приложения>
    Ответ написан
    Комментировать
  • Как работают и для чего нужны PTR записи?

    ValdikSS
    @ValdikSS
    1. Домен IN-ADDR.ARPA это реальный физический домен, который где-то находится, и обслуживается реальными людьми, или это абстрактное название, которое просто зарезервировано под использование для E-Mail, наравне с 192.168..., 172.27... и 127.0.0.1?

    in-addr.arpa — реальный существующий домен. PTR — понятие DNS, к email оно имеет только косвенное отношение (email использует ptr-записи для ip-адресов).
    Когда вы делаете traceroute на какой-то IP-адрес, имена доменов, которые вы видите в выводе, получаются путём запроса PTR-записи IP-адреса:
    traceroute to ya.ru (87.250.250.242), 30 hops max, 60 byte packets
     1  _gateway (192.168.101.1)  49.797 ms  119.433 ms  119.416 ms
     2  hosted-by.yourserver.se (95.215.45.5)  119.308 ms  119.242 ms  119.179 ms
     3  stk-tct-cr3.be22-1841.rascom.as20764.net (81.27.252.200)  166.091 ms  165.839 ms  165.776 ms
     4  * * *
     5  178.18.226.119.ix.dataix.ru (178.18.226.119)  165.459 ms  165.345 ms  165.312 ms
     6  * ya.ru (87.250.250.242)  79.669 ms *

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

    2. Почему в PTR записях IP адреса записываются в обратном порядке? Какой в этом смысл?

    Лёгкость хранения «обратного» дерева в памяти DNS-сервера, быстрый поиск записей. Скорее, технологическая особенность 80-х, а не необходимость.

    3. Есть ли какой-то софт, позволяющий моделировать сети, скажем поднимать несколько виртуальных машин, и настраивать им разные роли. Например одну сконфигурировать как провайдера, другую как просто компьютер и т.д, чтобы наглядно моделировать взаимодействие в сети интернет, и больше не задавать подобные вопросы здесь
    Зависит от того, что конкретно вам нужно моделировать. См. в сторону Cisco Packet Tracer, gns3.
    Ответ написан
    Комментировать
  • Как работает Dockerfile из 2-х образов?

    @mureevms
    FROM node:13 as node
    WORKDIR /app
    COPY package.json /app/
    COPY package-lock.json /app/
    COPY docker-additions/.npmrc /app/
    RUN npm install
    COPY ./ /app/
    RUN npm run config
    RUN npm run build

    В этом месте он использует контейнер с базовым образом node:13 для билда приложения.

    FROM nginx:1.18.0-alpine
    COPY --from=node /app/dist/ /usr/share/nginx/html
    COPY ./nginx-custom.conf /etc/nginx/conf.d/default.conf

    Тут используется nginx:1.18.0-alpine как базовый образ и копируется то, что набилдилось в предыдущем контейнере в контейнер с веб сервером.

    Этакий CI для Докера. Это удобно.

    1. Присваивается имя для слоя из которого потом копируются файлы в строке COPY --from=node /app/dist/ /usr/share/nginx/html
    2. На первом FROM происходит сборка. Если использовать один, то придется или ставить nginx в первый, или же nodejs во второй. А так это просто промежуточный слой.
    Ответ написан
    1 комментарий
  • Какой годный курс, а лучше книгу по docker, docker-compose, ansible?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Все хорошие инструменты - необычайно гибкие в использовании.
    Поэтому никакой курс не сможет раскрыть инструмент в различных вариантах, не хватит времени.
    Практически в каждом проекте что-то настраивается под себя, так как это удобно или как придумано именно здесь и сейчас.

    К документации нужно просто добавлять практику на каком-то хобби проекте, или реальном проекте, чтобы стояла конкретная задача. И все.
    Ответ написан
    7 комментариев
  • Как указать Ansible получать права через sudo?

    @thematt Автор вопроса
    Решено, помогли на другом ресурсе. Из офф документации:
    become_user set to user with desired privileges, the user you ‘become’, NOT the user you login as. Does NOT imply become: yes, to allow it to be set at host level.
    В become_user указывается пользователь, права которого требуется получить через sudo, соответственно нужно было указать root'a, а не myuser.
    Ответ написан
    Комментировать
  • Имеет ли смысл использование Docker?

    Ааааааа, просто настройте php-fpm
    pm.max_requests = 300 или 500

    P. S. Просто тонкая настройка ПО решит проблему. Не нужно стрелять себе в ногу пытаясь перевести все в контейнеры)
    Ответ написан
    Комментировать
  • Git+ftp возможно ли одновременно использовать в проекте?

    ShadowOfCasper
    @ShadowOfCasper
    Middle User Interface Web Developer
    Как раз твой случай
    UPD у тебя очень много примитивных вопросов про общую суть работы гита, чтобы ответить на них - нужно просто пересказать доки гита, поэтому хочешь не хочешь а придётся выкупить как работает гит. Если же кратко
    1) Хранишь на удалённом сервере репу и спулливаешься перед изменениями с нужной ветки
    2) Если работаешь по git, не надо править код на удалённых машинах руками. С гитом начнутся проблемы.
    3) Гугли и достигнешь апофеоза воли разума
    Ответ написан
    6 комментариев
  • Платежные системы с физ. лицами?

    @skrimafonolog
    Все участники рынка делают вид, что не нарушают закон.

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

    Строгого говоря, платежные системы и "незаконная предпринимательная деятельность" - это разное.
    Впрочем, на банки возложили необходимость проверки подобных операций.
    Существуют разные паранойи банков по степени строгости исполнения этого законодательства.
    Какие-то банки ставят лимит в 15 000 рублей разово и 60 000 в месяц или 250 000 в месяц....
    Какие-то банки ставят лимиты выше.
    Какие-то банки ставят лимиты ниже.
    От 600 000 - однозначно возникают вопросы банка.

    Но это лимиты для получателей.

    Есть еще лимиты на плательщиков (не для конечных плательщиков, а для платежных систем).
    Они выше. Но они они есть. И плательщиков банки тоже банят, там нужно индивидуально идти в банк договариваться. Лично. Лично к высшему руководству банка.

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

    В частности нам, чтобы не превышать лимитов приходится работать с двумя десятками платежных систем.
    Ответ написан
    Комментировать
  • Как оформить запрос в БД при помощи Django ORM?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Django + PostGIS = https://docs.djangoproject.com/en/2.2/ref/contrib/...
    Замечательно вместе скрещивается. Сразу и соответствующие поля в моделях и гео-методы доступны без танцев с бубном. Вычисление вхождения точки в фигуру и прочее - на раз. Я так делал. Так что можно не городить своё. Ну, если только очень хочется.
    Ответ написан
    2 комментария
  • Как настроить автоматическое выполнение SSh команд?

    @Tabletko
    никого не трогаю, починяю примус
    Отредактировать Bashrc, profile
    Ответ написан
    Комментировать