From 74b2660a842ac57ea418def89456a34754c43796 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD?= Date: Sat, 7 Mar 2026 19:21:56 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 6 ++-- README.md | 10 +++--- .../sql_scripts/{init.sql => a_init.sql} | 0 .../{seed_states.sql => b_seed_states.sql} | 0 ...medications.sql => c_seed_medications.sql} | 0 .../{seed_users.sql => d_seed_users.sql} | 0 ....sql => e_seed_user_treatment_schemes.sql} | 0 ...hemes.sql => f_seed_treatment_schemes.sql} | 0 .../{seed_diaries.sql => g_seed_diaries.sql} | 0 docker-compose.yml | 36 +++++++++++++++++++ .../script_order.txt => script_order.txt | 0 src/log/Log.cpp | 2 +- 12 files changed, 46 insertions(+), 8 deletions(-) rename db_assets/sql_scripts/{init.sql => a_init.sql} (100%) rename db_assets/sql_scripts/{seed_states.sql => b_seed_states.sql} (100%) rename db_assets/sql_scripts/{seed_medications.sql => c_seed_medications.sql} (100%) rename db_assets/sql_scripts/{seed_users.sql => d_seed_users.sql} (100%) rename db_assets/sql_scripts/{seed_user_treatment_schemes.sql => e_seed_user_treatment_schemes.sql} (100%) rename db_assets/sql_scripts/{seed_treatment_schemes.sql => f_seed_treatment_schemes.sql} (100%) rename db_assets/sql_scripts/{seed_diaries.sql => g_seed_diaries.sql} (100%) create mode 100644 docker-compose.yml rename db_assets/sql_scripts/script_order.txt => script_order.txt (100%) diff --git a/Dockerfile b/Dockerfile index fefde87..dbdc66c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,7 +46,7 @@ CMD ["bash", "-lc", "\ set -euo pipefail; \ test -f /project/CMakeLists.txt; \ mkdir -p /project/dist; \ - cmake -S /project -B /project/dist -Dmysql-concpp_DIR=/opt/mysql-concpp; \ - cmake --build /project/dist -j\"$(nproc)\"; \ - exec /project/dist/App 0.0.0.0 8080 . 12 mysqlx://root:root@host.docker.internal:33060 \ + cmake -S /project -B /project/dist --target App -Dmysql-concpp_DIR=/opt/mysql-concpp; \ + cmake --build /project/dist -j2; \ + exec /project/dist/App 0.0.0.0 8080 . 12 mysqlx://root:root@up_and_down_mysql:33060 \ "] diff --git a/README.md b/README.md index 8c1229e..11bc912 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Запуск(Без Docker): - cmake .. -DBOOST_ROOT=C:\Libs\boost_1_88_0 -Dmysql-concpp_DIR=C:\Libs\mysql_connector - cmake --build . +- ./App
# Запуск(С Docker): - $env:DOCKER_BUILDKIT=1; docker build --progress=plain -t up_and_down . @@ -33,18 +34,19 @@ - ~~Разобрать decltype и auto по статье~~ - Подготовить резюме для тестовых собесов - DockerHosting.ru - купить аренду после того, как будет готов фронт и бэк +- Сделать 2-3 теста +- Продвинуться по фронтенду(форма авторизации и логина) До 27.01.2026 - ~~Подобрать сервер по параметрам. Использовать linux.~~ - ~~Перевести string на string_view~~ - ~~Попробовать nodiscard к executoru~~ - ~~Добить 2 ручки~~ -До 10.02.2026 -- Сделать 2-3 теста -- Продвинуться по фронтенду(форма авторизации и логина) +До 01.04.2026 - Сделать Dockerfile & Docker-compose(очищать и заполнять базу после каждого тест-кейса) -- Возможно, сделать тесты на CI/CD - приоритет - низкий +- Возможно, сделать тесты на CI/CD - приоритет - Научиться поднимать базы данных под каждый тест - научиться Docker - docker-compose - а если тест что-то должен заполнить, то он заполняет в самом начале - Проставить const на немутабельные объекты +- Передавать аргументы через --argument=value и парсить их через Boost::program_options # План 1)Добить бэкенд(2 ручки) (до февраля) diff --git a/db_assets/sql_scripts/init.sql b/db_assets/sql_scripts/a_init.sql similarity index 100% rename from db_assets/sql_scripts/init.sql rename to db_assets/sql_scripts/a_init.sql diff --git a/db_assets/sql_scripts/seed_states.sql b/db_assets/sql_scripts/b_seed_states.sql similarity index 100% rename from db_assets/sql_scripts/seed_states.sql rename to db_assets/sql_scripts/b_seed_states.sql diff --git a/db_assets/sql_scripts/seed_medications.sql b/db_assets/sql_scripts/c_seed_medications.sql similarity index 100% rename from db_assets/sql_scripts/seed_medications.sql rename to db_assets/sql_scripts/c_seed_medications.sql diff --git a/db_assets/sql_scripts/seed_users.sql b/db_assets/sql_scripts/d_seed_users.sql similarity index 100% rename from db_assets/sql_scripts/seed_users.sql rename to db_assets/sql_scripts/d_seed_users.sql diff --git a/db_assets/sql_scripts/seed_user_treatment_schemes.sql b/db_assets/sql_scripts/e_seed_user_treatment_schemes.sql similarity index 100% rename from db_assets/sql_scripts/seed_user_treatment_schemes.sql rename to db_assets/sql_scripts/e_seed_user_treatment_schemes.sql diff --git a/db_assets/sql_scripts/seed_treatment_schemes.sql b/db_assets/sql_scripts/f_seed_treatment_schemes.sql similarity index 100% rename from db_assets/sql_scripts/seed_treatment_schemes.sql rename to db_assets/sql_scripts/f_seed_treatment_schemes.sql diff --git a/db_assets/sql_scripts/seed_diaries.sql b/db_assets/sql_scripts/g_seed_diaries.sql similarity index 100% rename from db_assets/sql_scripts/seed_diaries.sql rename to db_assets/sql_scripts/g_seed_diaries.sql diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..36f1445 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,36 @@ +services: + up_and_down_service: + build: + context: . + dockerfile: Dockerfile + volumes: + - "//c/CLionProjects/UpAndDown:/project" + ports: + - "8080:8080" + depends_on: + up_and_down_mysql: + condition: service_healthy + + up_and_down_mysql: + image: mysql:8.4 + command: > + --mysqlx=ON + --mysqlx-port=33060 + environment: + MYSQL_ROOT_PASSWORD: root + ports: + - "3307:3306" + - "33061:33060" + volumes: + - mysql_data:/var/lib/mysql + - "//c/CLionProjects/UpAndDown/db_assets/sql_scripts:/docker-entrypoint-initdb.d:ro" + healthcheck: + test: [ "CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p\"$$MYSQL_ROOT_PASSWORD\" --silent" ] + interval: 5s + timeout: 3s + retries: 30 + start_period: 20s + restart: unless-stopped + +volumes: + mysql_data: diff --git a/db_assets/sql_scripts/script_order.txt b/script_order.txt similarity index 100% rename from db_assets/sql_scripts/script_order.txt rename to script_order.txt diff --git a/src/log/Log.cpp b/src/log/Log.cpp index 5197374..1dfff90 100644 --- a/src/log/Log.cpp +++ b/src/log/Log.cpp @@ -9,7 +9,7 @@ namespace uad void InitLogs() { logging::add_file_log( - logging::keywords::file_name = "app_%Y-%m-%d_%H-%M-%S.log", + logging::keywords::file_name = "./logs/up_and_down_%Y-%m-%d_%H-%M-%S.log", logging::keywords::rotation_size = 10 * 1024 * 1024, logging::keywords::time_based_rotation = logging::sinks::file::rotation_at_time_point(0, 0, 0),