Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[config] MYSQL configurations to env #232

Draft
wants to merge 151 commits into
base: master
Choose a base branch
from
Draft

[config] MYSQL configurations to env #232

wants to merge 151 commits into from

Conversation

borazslo
Copy link
Owner

@borazslo borazslo commented Mar 2, 2024

#230 kapcsán: ez így jobbnak tűnik? Így a MYSQL_USER és egyéb beállításokat az .env.local -ba kell megejteni egyetlen helyen és nincs beégetve. És ha nem csinálom meg a rendes .env.local fájlomat, akkor nem is indul el semmi és a .env az maradhat boldog no-touch zone.

issue: docker-compose.yml -ben a mysql healthcheck része nem működik még mert oda be van égetve a mysql név és jelszó!

connorhu and others added 23 commits February 12, 2024 13:13
…töltése és symfony alap form téma beállítása (#203)
* [user] regisztráció tesztelések és hibajavítások

* [github] node setup es asset build
* [security] lemaradt login type

* [security] minimal teszt, hogy latszodjon ha valami nem mukodik
* [github] php 8.3

* [docker] php 8.3

* [docker] mlocati php ext installer-et hasznaljuk, egyszerubb
* [user] profil oldal letrehozasa #177

* [user] kedvencek torlese (+turbo hozzaadasa)

* cs fixer

* [composer] route generalas

* [static] statikus oldal routeok felvetele es javitas (#208)

* [security] lemaradt LoginType #203 (#210)

* [security] lemaradt login type

* [security] minimal teszt, hogy latszodjon ha valami nem mukodik

* [style] footer alul legyen ha keves a tartalom, de tolja le ha sok (#211)

* [docker/qa] frissites: php 83 (#212)

* [github] php 8.3

* [docker] php 8.3

* [docker] mlocati php ext installer-et hasznaljuk, egyszerubb

* [user/favorite] templom legyen parameter inkabb

* kedvenceles kezeles turbo-val

* cs fix

* [user] saját felhasználói adatok szerkesztése

* [cs] void return true

* [cs] legacy mappat egyelore kivonjuk az ellenorzes alol
* [ci] codecov integráció

* [ci] coverage badge
* [composer] kapjon nevteret a teszt mappa

* [api clients] hamvazoszerda es hiba teszteles. timeout 2 secre nott

* [api clients] 500-as valaszt is teszteljuk le

* [phpunit] tesztek BP timezone-ban fussanak

* [composer] local coverage generalas

* [api clients] karácsony hétköznap tesztelése (a főünnepe szöveg miatt)
* [ci] adatbázis migrációs teszt környezet

* cleanup

* [github] database migration workflow es teszt adatok

* [composer] lock mostantol nem jatszik

* [doctrine] db suffix nem baj ha configuralhato

* [ci] db migration test specifikus phpunit config: DAMA-t ki kell kapcsolni

* [tests] ki lehessen hagyni az adatbazis letrahozast

* [ci] elso migteszt user load

* [migrations] javitasok a felmerult hibak fenyeben
… szentek, unnepnaptar, updates táblák törlése #174 (#221)
* [composer] phpstan csomagok megkovetelese

* [qa] alap phpstan config

* [qa] apro javitasok, hogy a stan zold legyen

* [github] workflow config a phpstan-hoz
* [orm] User Repository teszt es Clock bevezetese

* [components] BreviarClient fetchCalendarAt argumentuma igazabol barmi interface (stan report)

* [entity] null eset kezelese N/A statusszal

* [orm] role migrator tesztelese

* [qa] phpstan level 5

* [qa] tipusdefiniciok (level 6)

* [qa] phpstan level 6

* [php83] konstans típusok

* [typo] keruljon a vegere a deprecated

* [typo] null set folosleges, contructor allitja be az erteket

* [qa] AccessibilityHelper tesztek

* [qa] ezt a kettot egyelore ignoreba tesszuk, a tobbit pedig baseline-ba
* [breviarclient] object alapu visszateresi ertek, hogy rendesen tipusos legyen

* [breviarclient] teszt javitasa

* [breviarclient] phpstan kizolditese
* [docker] gd kiterjesztes telepitese

* [docker] curl csomag telepitese. composer gyorsitasa
@borazslo borazslo marked this pull request as draft March 2, 2024 23:19
@codecov-commenter
Copy link

codecov-commenter commented Mar 2, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 6.30%. Comparing base (8f58b47) to head (f866d63).
Report is 4 commits behind head on master.

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@            Coverage Diff            @@
##           master    #232      +/-   ##
=========================================
- Coverage    6.39%   6.30%   -0.09%     
=========================================
  Files         164     164              
  Lines        7912    7912              
=========================================
- Hits          506     499       -7     
- Misses       7406    7413       +7     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@borazslo
Copy link
Owner Author

borazslo commented Mar 2, 2024

Gondolom nem teljesen hülye az ötletem. Csak hát a getenv() nem látja az env változókat amit ha terminálba belépek akkor szépen látok. Ez van. Most alszom.

@@ -18,7 +18,7 @@
# IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml
#
# DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
DATABASE_URL="mysql://user:pw@mysql:3306/miserend?serverVersion=8.0.32&charset=utf8mb4"
DATABASE_URL="mysql://${MISEREND_MYSQL_USER}:${MISEREND_MYSQL_PASSWORD}@mysql:3306/${MISEREND_MYSQL_DATABASE}?serverVersion=8.0.32&charset=utf8mb4"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
DATABASE_URL="mysql://${MISEREND_MYSQL_USER}:${MISEREND_MYSQL_PASSWORD}@mysql:3306/${MISEREND_MYSQL_DATABASE}?serverVersion=8.0.32&charset=utf8mb4"
# DATABASE_URL="mysql://app:[email protected]:3306/app?serverVersion=8.0.32&charset=utf8mb4"
# DATABASE_URL="mysql://app:[email protected]:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4"
DATABASE_URL="postgresql://app:[email protected]:5432/app?serverVersion=16&charset=utf8"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A .env fájl még mindig tabu olyan dolgoknak amik a te környezetedre jellemző. Ha nagyon be akarod égetni akkor inkább a .env.dev, de inkább ne, mert még mindig csak a te környezetedre jellemző. (nálam teljesen más van és a prod és a teszt is teljesen más)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dehogy megmutassam mire való a .env: Pl itt be lehet állítani a renszerre jellemző időzónát:
APP_TIMEZONE=Europe/Budapest
Ez nem egy támogatott dolog a symfonyban, de például ilyen adat kerülhetne ide. Most attól tekintsünk el, hogy a miserend nem egy globális rendszer és nem változik az időzóna instance-onként.

MYSQL_USER: user
MYSQL_PASSWORD: pw
MYSQL_ROOT_PASSWORD: ${MISEREND_MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}

MYSQL_PASSWORD: pw
MYSQL_ROOT_PASSWORD: ${MISEREND_MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
MYSQL_USER: ${MISEREND_MYSQL_USER}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
MYSQL_USER: ${MISEREND_MYSQL_USER}
MYSQL_USER: ${MISEREND_MYSQL_USER}

MYSQL_ROOT_PASSWORD: ${MISEREND_MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
MYSQL_USER: ${MISEREND_MYSQL_USER}
MYSQL_PASSWORD: ${MISEREND_MYSQL_PASSWORD}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
MYSQL_PASSWORD: ${MISEREND_MYSQL_PASSWORD}
MYSQL_PASSWORD: ${MISEREND_MYSQL_PASSWORD}

@@ -81,14 +81,17 @@ services:
- "${MISEREND_PORT:-8000}:8000"
environment:
MISEREND_WEBAPP_ENVIRONMENT: ${MISEREND_WEBAPP_ENVIRONMENT:-development}
MISEREND_MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
MISEREND_MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
MISEREND_MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}

@@ -81,14 +81,17 @@ services:
- "${MISEREND_PORT:-8000}:8000"
environment:
MISEREND_WEBAPP_ENVIRONMENT: ${MISEREND_WEBAPP_ENVIRONMENT:-development}
MISEREND_MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
MISEREND_MYSQL_USER: ${MISEREND_MYSQL_USER}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
MISEREND_MYSQL_USER: ${MISEREND_MYSQL_USER}
MISEREND_MYSQL_USER: ${MISEREND_MYSQL_USER}

@@ -81,14 +81,17 @@ services:
- "${MISEREND_PORT:-8000}:8000"
environment:
MISEREND_WEBAPP_ENVIRONMENT: ${MISEREND_WEBAPP_ENVIRONMENT:-development}
MISEREND_MYSQL_DATABASE: ${MISEREND_MYSQL_DATABASE}
MISEREND_MYSQL_USER: ${MISEREND_MYSQL_USER}
MISEREND_MYSQL_PASSWORD: ${MISEREND_MYSQL_PASSWORD}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
MISEREND_MYSQL_PASSWORD: ${MISEREND_MYSQL_PASSWORD}
MISEREND_MYSQL_PASSWORD: ${MISEREND_MYSQL_PASSWORD}

networks:
inner:
aliases:
- miserend
depends_on:
- mysql
- mailcatcher
- build
- miserend-build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- miserend-build
- build

igyekezzünk ne keverni a dolgokat

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#233 megjavítja

@connorhu
Copy link
Contributor

connorhu commented Mar 3, 2024

Kis olvasnivaló a témában:
https://docs.docker.com/compose/use-secrets/
https://symfony.com/doc/current/configuration/env_var_processors.html
https://symfony.com/doc/current/configuration/secrets.html

Kicsit hosszabb olvasnivaló:
https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html

tldr:
Kétféle megközelítés van: vagy a docker kezeli vagy a symfony. Mivel több helyen is meg kell jelennie, ezért a docker kezeli, szóval azt a megoldást kell használni. env_var-ban van processzor ami fájlból hozza az értéket. Nem a dsn-t kell matatni, hanem a megfelelő beállítás értéket kell megadni:

# config/packages/doctrine.yaml
doctrine:
    dbal:
        password: '%env(file:MISEREND_MYSQL_PASSWORD_FILE)%'
        # ...
    # ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants