13 781

Re: Тема для розмов

Хочете урізноманітнити нудну зустріч з родичами за столом - запитайте навіщо вирощувати щось на городі, якщо можна все купити в супермаркеті.

13 782

Re: Тема для розмов

frz написав:

Хочете урізноманітнити нудну зустріч з родичами за столом - запитайте навіщо вирощувати щось на городі, якщо можна все купити в супермаркеті.

На випадок, коли війна, і найближчий оптовий склад розбомбили?
У 2022 дехто висаджував картоплю і між троєщинських багатоповерхівок. Що могло б мати сенс, якби ситуація навколо Києва погіршилась.

13 783

Re: Тема для розмов

frz написав:
FakiNyan написав:
frz написав:

Дещо незручно робити фікси в докері, бо треба білдити після кожної зміни аби цю зміну побачити в роботі. Проте якось таки обійшов це місяці тому, після чого успішно забув як саме це робив.

volume mount?

Та ясно що треба редагувати код всередині докера, а не ззовні нього. Проте щось змінилося, я вже заходжу в консолі і всередині редагую, після цього перезаходжу на потрібну сторінку в веб-додатку, а воно не змінюється. Чи то якось по-хитрому треба зупиняти і запускати знову без білду щоб не чекати, чи шо.

А хоть що за мова? Може вам треба якийсь білд робити.

13 784

Re: Тема для розмов

Vo_Vik написав:
frz написав:
FakiNyan написав:

volume mount?

Та ясно що треба редагувати код всередині докера, а не ззовні нього. Проте щось змінилося, я вже заходжу в консолі і всередині редагую, після цього перезаходжу на потрібну сторінку в веб-додатку, а воно не змінюється. Чи то якось по-хитрому треба зупиняти і запускати знову без білду щоб не чекати, чи шо.

А хоть що за мова? Може вам треба якийсь біля робити.

Python, FastAPI.

Чомусь досі на Flask такого не було. Змінюєш код - докер автоматично фіксує зміни і апка їх відображає.

Не розумію в чому нюанс. FastAPI однозначно більш зрілий фреймворк і вже назад ніяк не можна. Але дуже незручно білдити після кожної зміни. Сильно затримується розробка.

13 785

Re: Тема для розмов

frz https://github.com/tiangolo/fastapi/issues/1981 - це підійде?

13 786

Re: Тема для розмов

Vo_Vik написав:

frz https://github.com/tiangolo/fastapi/issues/1981 - це підійде?

Дякую, сходив туди. Там з того що стосується налаштувань:

uvicorn app_name:app --reload

ну це версія 2020 року, зараз воно в мене виглядає ось так:

uvicorn.run("app:app", host="0.0.0.0", port=8000, reload=True)

Решта коментів стосуються автоматичного перезавантаження самої сторінки в браузері. Ну мені не важко натиснути F5, але це не допомагає.
Якась фігня.

13 787

Re: Тема для розмов

- Як ви вважаєте, це горнятко наполовину порожнє, чи наполовину повне?
- Нижня половина повна, верхня половина порожня.
- Цікава відповідь, а що вплинуло на таке ваше бачення?
- Гравітація.

13 788

Re: Тема для розмов

frz написав:
Vo_Vik написав:

frz https://github.com/tiangolo/fastapi/issues/1981 - це підійде?

Дякую, сходив туди. Там з того що стосується налаштувань:

uvicorn app_name:app --reload

ну це версія 2020 року, зараз воно в мене виглядає ось так:

uvicorn.run("app:app", host="0.0.0.0", port=8000, reload=True)

Решта коментів стосуються автоматичного перезавантаження самої сторінки в браузері. Ну мені не важко натиснути F5, але це не допомагає.
Якась фігня.

Може там має значення як то Тру записане, лапки там чи 0/1 має бути, або з маленької букви.

13 789

Re: Тема для розмов

Vo_Vik написав:
frz написав:
Vo_Vik написав:

frz https://github.com/tiangolo/fastapi/issues/1981 - це підійде?

Дякую, сходив туди. Там з того що стосується налаштувань:

uvicorn app_name:app --reload

ну це версія 2020 року, зараз воно в мене виглядає ось так:

uvicorn.run("app:app", host="0.0.0.0", port=8000, reload=True)

Решта коментів стосуються автоматичного перезавантаження самої сторінки в браузері. Ну мені не важко натиснути F5, але це не допомагає.
Якась фігня.

Може там має значення як то Тру записане, лапки там чи 0/1 має бути, або з маленької букви.

Поки що всі джерела говорять що Тру має бути записано у варіанті uvicorn.run так як є - з великої букви. Інша річ, що варіант

uvicorn app_name:app --reload

це виявляється не застаріла версія, а різновид "programmatic / non-programmatic" і саме цей варіант був в мене в версії з Flask, де reload працював коректно. Поки буду думати як повернутися до цього варіанту з FastAPI і чи це можливо.

13 790 Востаннє редагувалося frz (09.03.2024 21:33:10)

Re: Тема для розмов

frz написав:
Vo_Vik написав:
frz написав:

Дякую, сходив туди. Там з того що стосується налаштувань:

uvicorn app_name:app --reload

ну це версія 2020 року, зараз воно в мене виглядає ось так:

uvicorn.run("app:app", host="0.0.0.0", port=8000, reload=True)

Решта коментів стосуються автоматичного перезавантаження самої сторінки в браузері. Ну мені не важко натиснути F5, але це не допомагає.
Якась фігня.

Може там має значення як то Тру записане, лапки там чи 0/1 має бути, або з маленької букви.

Поки що всі джерела говорять що Тру має бути записано у варіанті uvicorn.run так як є - з великої букви. Інша річ, що варіант

uvicorn app_name:app --reload

це виявляється не застаріла версія, а різновид "programmatic / non-programmatic" і саме цей варіант був в мене в версії з Flask, де reload працював коректно. Поки буду думати як повернутися до цього варіанту з FastAPI і чи це можливо.

Ще таке знайшов:
https://docs.docker.com/compose/file-watch/

Compose Watch is available in Docker Compose version 2.22 and later.

Use watch to automatically update and preview your running Compose services as you edit and save your code.

For many projects, this allows for a hands-off development workflow once Compose is running, as services automatically update themselves when you save your work.

Upd: детальніші пояснення налаштування watch в docker-compose

https://collabnix.com/what-is-docker-co … -it-solve/

Upd: як скачати свіжу версію аби не чіпати існуючу:

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

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

/usr/local/bin/docker-compose -v

Docker Compose version v2.24.6

При цьому існуюча:

$ /usr/bin/docker compose version
Docker Compose version v2.21.0

Додав компонент develop / watch в налаштування docker-compose.yml:

    ...
    ports:
      - 81:8000
    depends_on:
      - some_container_name
    develop:
      watch:
        - action: sync
          path: ./src
          target: /var/www/app
        - action: rebuild
          path: Dockerfile

запускаю

/usr/local/bin/docker-compose watch

(поки що не допомогло)

Upd: Виспався, пробую інший варіант:

    develop:
      watch:
        - action: sync
          path: ./src
          target: /var/www/app
        - action: rebuild
          path: ./src/**/*
$ /usr/local/bin/docker-compose up --build -d
/usr/local/bin/docker-compose watch

13 791

Re: Тема для розмов

Ось так спрацювало:

  app-server:
    container_name: sample-app-abc
    env_file:
      - manual/.env
    build:
      context: .
      dockerfile: Dockerfile
    hostname: recommender
    restart: always
    volumes:
      - app_server_uploads:/opt/uploads
    ports:
      - 81:8000
    depends_on:
      - app-db
    develop:
      watch:
        - action: sync+restart
          path: ./src/app.py
          target: /var/www/app/app.py

відповідно щоб додати більше файлів, мабуть потрібно буде використовувати маску, або ж вказати більше секцій типу

        - action: sync+restart
          path: ./src/some_file.py
          target: /var/www/app/some_file.py

13 792

Re: Тема для розмов

Це хіба не рестартує цілий контейнер замість рестарту py процесу всередині докера?

Хіба що у вас код не шариться між хостом і контейнером (https://docs.docker.com/storage/bind-mounts/), а копіюється контейнером при старті (https://docs.docker.com/storage/volumes/).

Подякували: leofun011

13 793

Re: Тема для розмов

Щоб ця фіча спрацювала, довелося видалити волюм для цього сервісу.
Так, рестартує цілий контейнер.
Поки що більше файлів саме за маскою додати не вдалося. Виходить, що фіча сира, бо реагує лише на повний шлях файлу вказаний в конфігурації, або ж я щось невірно роблю. Поки що принаймні працює так як є, для мене це вже полегшення, бо не треба зупиняти і білдити вручну.

13 794

Re: Тема для розмов

Тобто у вас був вол'юм, і ми міняли файли на хвості, відповідно всередині вол'юма нічого не мінялося. І ребілд самої Python аплікації би нічого не дав. Правильно?

13 795 Востаннє редагувалося frz (11.03.2024 17:12:40)

Re: Тема для розмов

Був вол'юм, міняв файли на хості і вони відповідно "самі" синкалися в запущений контейнер, однак це не рестартувало апку автоматично. При цьому ручний ребілд допомагав, але вимагав додаткових дій і це було незручно, а також забирало значно більше часу ніж тепер, можливо більше хвилини. Тепер це теж не миттєво, займає якийсь десяток секунд.

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

13 796

Re: Тема для розмов

Не знаю, чи це весняний авітаміноз, вплив дощової погоди чи шо, але не проти поспати навіть декілька разів на день.

13 797

Re: Тема для розмов

frz написав:

Не знаю, чи це весняний авітаміноз, вплив дощової погоди чи шо, але не проти поспати навіть декілька разів на день.

старість

13 798

Re: Тема для розмов

FakiNyan написав:
frz написав:

Не знаю, чи це весняний авітаміноз, вплив дощової погоди чи шо, але не проти поспати навіть декілька разів на день.

старість

Точно, ось якраз на рік ближче до пенсії став.

13 799

Re: Тема для розмов

frz написав:
FakiNyan написав:
frz написав:

Не знаю, чи це весняний авітаміноз, вплив дощової погоди чи шо, але не проти поспати навіть декілька разів на день.

старість

Точно, ось якраз на рік ближче до пенсії став.

день народження?

13 800 Востаннє редагувалося frz (11.03.2024 18:45:28)

Re: Тема для розмов

FakiNyan написав:
frz написав:
FakiNyan написав:

старість

Точно, ось якраз на рік ближче до пенсії став.

день народження?

Так, вчора отримав класний домашній торт з горіхами від дружини. Завезли малечу на дитяче меню "картопля фрі + рибні наґетси" в нескучне курортне місце, самі теж щось символічне замовили. Побачили там ферму з рогатими оленями; безрогих багато всюди ходить і це не дивина, а щоб великі роги - це рідкість; чув що вони ще й доволі дорогі як прикраса, а час від часу їх скидають і вирощують нові. Був дуже сильний вітер. Сама ідея святкування для мене якась незрозуміла, нічого не відчуваю з цього приводу, поїхав більше щоб показати дітям нове цікаве місце. Торт з'їли майже одразу.