Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°

Π‘Π²Π°ΠΊΠΈΡ… Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜Π° Ρ€Π°Π·Π²ΠΎΡ˜Π° софтвСра ΠΏΡ€ΠΎΠ»Π°Π·ΠΈ ΠΊΡ€ΠΎΠ· ΠΏΡ€ΠΎΠΌΠ΅Π½Ρƒ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅. ЈСдан ΠΎΠ΄ ΠΎΠ²ΠΈΡ… Ρ„Π΅Π½ΠΎΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ΅ сС ΠΏΡ€Π΅ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΊΠ°ΠΎ растућС ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°ΡšΠ΅ Π·Π° ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ микросСрвиса. Иако микросСрвис нијС најновија Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°, Ρ‚Π΅ΠΊ Π½Π΅Π΄Π°Π²Π½ΠΎ јС њСна популарност Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ порасла.

Π’Π΅Π»ΠΈΠΊΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π΅ услугС сада сС Π·Π°ΠΌΠ΅ΡšΡƒΡ˜Ρƒ нСзависним, Π°ΡƒΡ‚ΠΎΠ½ΠΎΠΌΠ½ΠΈΠΌ микросСрвисима. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡ сС ΠΌΠΎΠΆΠ΅ сматрати Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΎΠΌ која слуТи јСдној ΠΈ Π²Π΅ΠΎΠΌΠ° ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½ΠΎΡ˜ сврси. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΠΈΡ‚ΠΈ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½ΠΈ Π”Π‘ΠœΠ‘, ЕкпрСсс Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, Π‘ΠΎΠ»Ρ€ сСрвис.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°

ΠžΠ²ΠΈΡ… Π΄Π°Π½Π° јС Ρ‚Π΅ΡˆΠΊΠΎ замислити Ρ€Π°Π·Π²ΠΎΡ˜ Π½ΠΎΠ²ΠΎΠ³ софтвСрског систСма Π±Π΅Π· ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ° микросСрвиса. А ΠΎΠ²Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π° нас, Π·Π°ΡƒΠ·Π²Ρ€Π°Ρ‚, Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Π»ΡƒΡ‡ΠΊΠΈ Ρ€Π°Π΄Π½ΠΈΠΊ

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π»ΡƒΡ‡ΠΊΠΈ Ρ€Π°Π΄Π½ΠΈΠΊ, Ρƒ Ρ€Π°Π·Π²ΠΎΡ˜Ρƒ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ микросСрвиса, постао јС скоро ΠΈΠ½Π΄ΡƒΡΡ‚Ρ€ΠΈΡ˜ΡΠΊΠΈ стандард. На Π²Π΅Π± страници ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сазнати Π΄Π° јС Π”ΠΎΡ†ΠΊΠ΅Ρ€ јСдина нСзависна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ која ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°ΠΌΠ° Π΄Π° Π±Π΅Π· Π½Π°ΠΏΠΎΡ€Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρƒ Π±ΠΈΠ»ΠΎ ΠΊΠΎΡ˜Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ, ΠΊΠ°ΠΎ ΠΈ Π΄Π° ΠΈΡ… Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΠΈΡ€Π°Ρ˜Ρƒ ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ›Ρƒ Ρƒ Π±ΠΈΠ»ΠΎ ΠΊΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅ΡšΡƒ - ΠΎΠ΄ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈΡ… ΠΎΠ±Π»Π°ΠΊΠ° Π΄ΠΎ ΠΈΠ²ΠΈΡ‡Π½ΠΈΡ… систСма.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС

ВСхнология Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° са вишС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°. Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° садрТи ΠΎΠ½ΠΎΠ»ΠΈΠΊΠΎ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° ΠΊΠΎΠ»ΠΈΠΊΠΎ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ ΠΊΡ€Π΅Π°Ρ‚ΠΎΡ€Ρƒ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π°.

Када Ρ€Π°Π΄ΠΈΡ‚Π΅ са Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС, Π˜ΠΠœΠ› Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° сС користи Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡΠ°ΡšΠ΅ услуга Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡšΠ΅ ΡšΠΈΡ…ΠΎΠ²Π΅ мСђусобнС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π΅. Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС јС стога Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° описивањС ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ Π”ΠΎΡ†ΠΊΠ΅Ρ€ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° са вишС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
Π”Π²Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° Ρ€Π°Π΄Π΅ Π½Π° хост систСму

ГНУ МакС

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌ make, јС Ρƒ ΡΡƒΡˆΡ‚ΠΈΠ½ΠΈ Π°Π»Π°Ρ‚ Π·Π° Π°ΡƒΡ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Ρƒ ΠΈΠ·Π³Ρ€Π°Π΄ΡšΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠ· ΠΈΠ·Π²ΠΎΡ€Π½ΠΎΠ³ ΠΊΠΎΠ΄Π°. Π“Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠΎ Ρ‚ΠΎ Ρ€Π΅Ρ›ΠΈ make ΠΏΡ€ΠΈΠΌΠ΅ΡšΡƒΡ˜Π΅ сС Π½Π° Π±ΠΈΠ»ΠΎ који процСс који ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Π΅ ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΡ™Π½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Ρ‚Ρ€Π°Π½ΡΡ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Ρƒ Π½Π΅ΠΊΠΈΡ… ΡƒΠ»Π°Π·Π½ΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΡ˜Π°Π»Π° Ρƒ Π½Π΅ΠΊΠΈ ΠΈΠ·Π»Π°Π·Π½ΠΈ ΠΎΠ±Π»ΠΈΠΊ, Ρƒ Π½Π΅ΠΊΠΈ Ρ†ΠΈΡ™. Π£ нашСм ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ΠΊΠΎΠΌΠ°Π½Π΄Π΅ docker-compose Ρ›Π΅ сС трансформисати Ρƒ апстрактнС Ρ†ΠΈΡ™Π΅Π²Π΅ (ВСлСфонскС ΠΌΠ΅Ρ‚Π΅).

Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΡƒ make ΠΎ Ρ‚ΠΎΠΌΠ΅ ΡˆΡ‚Π° ΠΆΠ΅Π»ΠΈΠΌΠΎ ΠΎΠ΄ Ρ‚ΠΎΠ³Π°, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Π½Π°ΠΌ јС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Makefile.

Π£ нашСм Makefile садрТаћС Ρ€Π΅Π΄ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ docker ΠΈ docker-compose, који су Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ΠΈ Π΄Π° Ρ€Π΅ΡˆΠ΅ ΠΌΠ½ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅. НаимС, Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌΠΎ ΠΎ ΡΠ°ΡΡ‚Π°Π²Ρ™Π°ΡšΡƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°, ΠΎ њСговом ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΡƒ, Π·Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΡƒ, ΠΏΠΎΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΡƒ, ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡšΡƒ ΠΏΡ€ΠΈΡ˜Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ° корисника Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, ΠΎ Ρ€Π°Π΄Ρƒ са Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Π°ΠΌΠ° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° ΠΈ ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΡšΡƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… сличних ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Π·Π° Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС

Замислимо ΠΎΠ±ΠΈΡ‡Π½Ρƒ Π²Π΅Π± Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ која ΠΈΠΌΠ° слСдСћС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π΅:

  • ВимСсцалСДБ Π±Π°Π·Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° (ΠŸΠΎΡΡ‚Π³Ρ€Π΅Ρ).
  • ЕкпрСсс.јс Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°.
  • Пинг (само ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π½Π΅ Ρ€Π°Π΄ΠΈ Π½ΠΈΡˆΡ‚Π° посСбно).

Овој Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜ΠΈ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° 3 Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° docker-compose, који садрТи упутства Π·Π° ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ ΠΎΠ²ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ°. Π‘Π²Π°ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Ρ›Π΅ ΠΈΠΌΠ°Ρ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ Π΄ΠΎΠ΄ΠΈΡ€Π½Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, са ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΠΌ timescale Π±ΠΈΡ›Π΅ ΠΌΠΎΠ³ΡƒΡ›Π΅ Ρ€Π°Π΄ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ Π½Π° исти Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ Ρ€Π°Π΄Π΅ са Π±Π°Π·Π°ΠΌΠ° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°. НаимС, ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ слСдСћС Ρ€Π°Π΄ΡšΠ΅:

  • ΠŸΡ€ΠΈΡ˜Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ Ρƒ ΠŸΠΎΡΡ‚Π³Ρ€Π΅Ρ схСлл.
  • Π£Π²ΠΎΠ· ΠΈ ΠΈΠ·Π²ΠΎΠ· Ρ‚Π°Π±Π΅Π»Π°.
  • ΡΡ‚Π²Π°Ρ€Π°ΡšΠ΅ pg_dump Ρ‚Π°Π±Π΅Π»Π΅ ΠΈΠ»ΠΈ Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

ЕкпрСсс.јс ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅, expressjs, ΠΌΠΎΠΆΠ΅ ΠΈΠΌΠ°Ρ‚ΠΈ слСдСћС могућности:

  • ΠžΠ±Π΅Π·Π±Π΅Ρ’ΠΈΠ²Π°ΡšΠ΅ свСТих ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ· систСмског Π΄Π½Π΅Π²Π½ΠΈΠΊΠ°.
  • ΠŸΡ€ΠΈΡ˜Π°Π²ΠΈΡ‚Π΅ сС Π½Π° љуску Π΄Π° бистС ΠΈΠ·Π²Ρ€ΡˆΠΈΠ»ΠΈ ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° са ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ°

Када успоставимо ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° користСћи Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС, Π²Ρ€Π΅ΠΌΠ΅ јС Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°ΠΌΠΎ са Ρ‚ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ°. Π£ ΠΎΠΊΠ²ΠΈΡ€Ρƒ систСма Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° docker-compose, ΠΎΠΏΡ†ΠΈΡ˜Π° ΠΏΠΎΠ΄Ρ€ΡˆΠΊΠ΅ -f, ΡˆΡ‚ΠΎ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° прСнСсСтС Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ Ρƒ систСм docker-compose.yml.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ›ΠΈ могућности ΠΎΠ²Π΅ ΠΎΠΏΡ†ΠΈΡ˜Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Ρƒ са систСмом само Π½Π° ΠΎΠ½Π΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅ који су ΠΏΠΎΠΌΠ΅Π½ΡƒΡ‚ΠΈ Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ docker-compose.yml.

Π₯ајдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π°ΠΌΠΎ ΠΊΠ°ΠΊΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ˜Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π΅ са ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ° ΠΊΠ°Π΄Π° сС користС ΠΊΠΎΠΌΠ°Π½Π΄Π΅ docker-compose. Ако замислимо Π΄Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΡ€ΠΈΡ˜Π°Π²ΠΈΠΌΠΎ Ρƒ љуску psql, Ρ‚Π°Π΄Π° Π±ΠΈ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠ³Π»Π΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΎΠ²Π°ΠΊΠΎ:

docker-compose -f docker-compose.yml exec timescale psql -Upostgres

Π˜ΡΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° која сС Π½Π΅ користи Π·Π° ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ docker-composeИ docker, ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π³Π»Π΅Π΄Π°Ρ‚ΠΈ ΠΎΠ²Π°ΠΊΠΎ:

docker exec -it  edp_timescale_1 psql -Upostgres

Π˜ΠΌΠ°Ρ˜Ρ‚Π΅ Π½Π° ΡƒΠΌΡƒ Π΄Π° јС Ρƒ Ρ‚Π°ΠΊΠ²ΠΈΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ° ΡƒΠ²Π΅ΠΊ ΠΏΠΎΠΆΠ΅Ρ™Π½ΠΎ користити ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ docker, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° docker-compose, Ρ˜Π΅Ρ€ ΠΎΠ²ΠΎ СлиминишС ΠΏΠΎΡ‚Ρ€Π΅Π±Ρƒ Π·Π° ΠΏΠ°ΠΌΡ›Π΅ΡšΠ΅ΠΌ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°.

ОбС Π³ΠΎΡ€Π΅ Π½Π°Π²Π΅Π΄Π΅Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ нису Ρ‚Π°ΠΊΠΎ Ρ‚Π΅ΡˆΠΊΠ΅. Али Π°ΠΊΠΎ бисмо користили β€žΠΎΠΌΠΎΡ‚Π°Ρ‡β€œ Ρƒ обрасцу Makefile, који Π±ΠΈ Π½Π°ΠΌ Π΄Π°ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ Ρƒ ​​облику Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ сам Π±ΠΈ ΠΏΠΎΠ·Π²Π°ΠΎ сличнС Π΄ΡƒΠ³Π°Ρ‡ΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅, ΠΎΠ½Π΄Π° Π±ΠΈ сС исти Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΌΠΎΠ³Π»ΠΈ постићи ΠΎΠ²Π°ΠΊΠΎ:

make db-shell

Басвим јС ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ Π΄Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Makefile Ρ‡ΠΈΠ½ΠΈ Ρ€Π°Π΄ са ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ лакшим!

Π Π°Π΄Π½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

На основу Π³ΠΎΡ€ΡšΠ΅Π³ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠ° ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π°, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ›Π΅ΠΌΠΎ слСдСћу Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ docker-compose.yml:

version: '3.3'
services:
    api:
        build: .
        image: mywebimage:0.0.1
        ports:
            - 8080:8080
        volumes:
            - /app/node_modules/
        depends_on:
            - timescale
        command: npm run dev
        networks:
            - webappnetwork
    timescale:
        image: timescale/timescaledb-postgis:latest-pg11
        environment:
          - POSTGRES_USER=postgres
          - POSTGRES_PASSWORD=postgres
        command: ["postgres", "-c", "log_statement=all", "-c", "log_destination=stderr"]
        volumes:
          - ./create_schema.sql:/docker-entrypoint-initdb.d/create_schema.sql
        networks:
           - webappnetwork
    ping:
       image: willfarrell/ping
       environment:
           HOSTNAME: "localhost"
           TIMEOUT: 300
networks:
   webappnetwork:
       driver: bridge

Π—Π° ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΎΠΌ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Ρƒ са ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ° којС ΠΎΠΏΠΈΡΡƒΡ˜Π΅, ΠΊΡ€Π΅ΠΈΡ€Π°Ρ›Π΅ΠΌΠΎ слСдСћу Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ Makefile:

THIS_FILE := $(lastword $(MAKEFILE_LIST))
.PHONY: help build up start down destroy stop restart logs logs-api ps login-timescale login-api db-shell
help:
        make -pRrq  -f $(THIS_FILE) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | sort | egrep -v -e '^[^[:alnum:]]' -e '^$@$$'
build:
        docker-compose -f docker-compose.yml build $(c)
up:
        docker-compose -f docker-compose.yml up -d $(c)
start:
        docker-compose -f docker-compose.yml start $(c)
down:
        docker-compose -f docker-compose.yml down $(c)
destroy:
        docker-compose -f docker-compose.yml down -v $(c)
stop:
        docker-compose -f docker-compose.yml stop $(c)
restart:
        docker-compose -f docker-compose.yml stop $(c)
        docker-compose -f docker-compose.yml up -d $(c)
logs:
        docker-compose -f docker-compose.yml logs --tail=100 -f $(c)
logs-api:
        docker-compose -f docker-compose.yml logs --tail=100 -f api
ps:
        docker-compose -f docker-compose.yml ps
login-timescale:
        docker-compose -f docker-compose.yml exec timescale /bin/bash
login-api:
        docker-compose -f docker-compose.yml exec api /bin/bash
db-shell:
        docker-compose -f docker-compose.yml exec timescale psql -Upostgres

Π’Π΅Ρ›ΠΈΠ½Π° ΠΎΠ²Π΄Π΅ описаних ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡ€ΠΈΠΌΠ΅ΡšΡƒΡ˜Π΅ сС Π½Π° свС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π΅, Π°Π»ΠΈ користСћи ΠΎΠΏΡ†ΠΈΡ˜Ρƒ c= ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅ ΠΎΠ±ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π½Π° јСдан ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€.

ПослС Makefile спрСман, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Π° користити ΠΎΠ²Π°ΠΊΠΎ:

  • make help β€” издавањС листС свих доступних ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° make.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
ΠŸΠΎΠΌΠΎΡ› Π·Π° доступнС ΠΊΠΎΠΌΠ°Π½Π΄Π΅

  • make build - ΡΠ°ΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ сликС ΠΈΠ· Dockerfile. Π£ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ користили смо ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›Π΅ сликС timescale ΠΈ ping. Али слика api ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° ΠΏΡ€ΠΈΠΊΡƒΠΏΡ™Π°ΠΌΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ. Π£ΠΏΡ€Π°Π²ΠΎ Ρ‚ΠΎ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ ΡƒΡ€Π°Ρ’Π΅Π½ΠΎ Π½Π°ΠΊΠΎΠ½ ΠΈΠ·Π²Ρ€ΡˆΠ΅ΡšΠ° ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
ΠŸΡ€Π°Π²Ρ™Π΅ΡšΠ΅ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°

  • make start β€” Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ свих ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°. Π”Π° бистС ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΠ»ΠΈ само јСдан ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ користити ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΏΠΎΠΏΡƒΡ‚ make start c=timescale.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
ΠŸΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° врСмСнског ΠΎΠΊΠ²ΠΈΡ€Π°

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
ΠŸΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΏΠΈΠ½Π³ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°

  • make login-timescale β€” ΠΏΡ€ΠΈΡ˜Π°Π²ΠΈΡ‚Π΅ сС Π½Π° басх ΡΠ΅ΡΠΈΡ˜Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° timescale.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
ΠŸΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ басх-Π° Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Ρƒ врСмСнскС скалС

  • make db-shell - ΡƒΠ»Π°Π· Ρƒ psql Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Ρƒ timescale Π·Π° ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π°ΡšΠ΅ Π‘ΠšΠ› ΡƒΠΏΠΈΡ‚Π° ΠΏΡ€Π΅ΠΌΠ° Π±Π°Π·ΠΈ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
ΠŸΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ пскл-Π° Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Ρƒ са врСмСнским ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅ΡšΠ΅ΠΌ

  • make stop β€” Π·Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
Π—Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° врСмСнскС скалС

  • make down β€” Π·Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΈ ΡƒΠΊΠ»Π°ΡšΠ°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°. Π”Π° бистС ΡƒΠΊΠ»ΠΎΠ½ΠΈΠ»ΠΈ ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ користити ΠΎΠ²Ρƒ Π½Π°Ρ€Π΅Π΄Π±Ρƒ која Π½Π°Π²ΠΎΠ΄ΠΈ ΠΆΠ΅Ρ™Π΅Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€ - make down c=timescale ΠΈΠ»ΠΈ make down c=api.

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°
Π—Π°ΡƒΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ ΠΈ Π±Ρ€ΠΈΡΠ°ΡšΠ΅ свих ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π°

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ

Иако Π½Π°ΠΌ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС дајС Π±ΠΎΠ³Π°Ρ‚ скуп ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²Ρ™Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ°, ΠΏΠΎΠ½Π΅ΠΊΠ°Π΄ ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΌΠΎΠ³Ρƒ постати Π΄ΡƒΠ³Π°Ρ‡ΠΊΠ΅ ΠΈ Ρ‚Π΅ΡˆΠΊΠΎ ΠΈΡ… јС Π·Π°ΠΏΠ°ΠΌΡ‚ΠΈΡ‚ΠΈ.

Начин ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π΅ Makefile ΠΏΠΎΠΌΠΎΠ³Π»Π° Π½Π°ΠΌ јС Π΄Π° успоставимо Π±Ρ€Π·Ρƒ ΠΈ Π»Π°ΠΊΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Ρƒ са ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ° ΠΈΠ· Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ docker-compose.yml. НаимС, Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌΠΎ ΠΎ слСдСћСм:

  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π° само са ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚Π½ΠΈΠΌ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΠΌΠ° описаним Ρƒ docker-compose.yml, Ρ€Π°Π΄ Π½Π΅ ΠΎΠΌΠ΅Ρ‚Π°Ρ˜Ρƒ Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ.
  • Π£ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ Π΄Π° јС ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°Π±ΠΎΡ€Π°Π²Ρ™Π΅Π½Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ јС ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚ΠΈ make help ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΠΈ ΠΏΠΎΠΌΠΎΡ› Π·Π° доступнС ΠΊΠΎΠΌΠ°Π½Π΄Π΅.
  • НС ΠΌΠΎΡ€Π°Ρ‚Π΅ Π΄Π° ΠΏΠ°ΠΌΡ‚ΠΈΡ‚Π΅ Π΄ΡƒΠ³Π°Ρ‡ΠΊΠ΅ листС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Π°Ρ‚Π° Π΄Π° бистС ΠΈΠ·Π²Ρ€ΡˆΠΈΠ»ΠΈ Ρ€Π°Π΄ΡšΠ΅ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су добијањС Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΡ˜ΠΈΡ… уноса Ρƒ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜ΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΡ˜Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ Ρƒ систСм. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΏΡƒΡ‚ docker-compose -f docker-compose.yml exec timescale psql -Upostgres ΠΏΡ€Π΅Ρ‚Π²Π°Ρ€Π° Ρƒ make db-shell.
  • Ρ„Π°Ρ˜Π» Makefile ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΡƒ сС флСксибилно ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΠ°Ρ‚ растС. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π»Π°ΠΊΠΎ јС Π΄ΠΎΠ΄Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²Π½Π΅ копијС Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ»ΠΈ ΠΎΠ±Π°Π²Ρ™Π°ΡšΠ΅ Π±ΠΈΠ»ΠΎ којС Π΄Ρ€ΡƒΠ³Π΅ Ρ€Π°Π΄ΡšΠ΅.
  • Ако Π²Π΅Π»ΠΈΠΊΠΈ Ρ‚ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€Π° користи исто Makefile, ΠΎΠ²ΠΎ ΠΏΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΡƒΡ˜Π΅ ΡΠ°Ρ€Π°Π΄ΡšΡƒ ΠΈ ΡΠΌΠ°ΡšΡƒΡ˜Π΅ Π³Ρ€Π΅ΡˆΠΊΠ΅.

ПБ Π£ нашСм ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΏΠ»Π°Ρ†Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜ΠΈ слика Π»ΡƒΡ‡ΠΊΠΈ Ρ€Π°Π΄Π½ΠΈΠΊ, који сС ΠΌΠΎΠΆΠ΅ инсталирати јСдним ΠΊΠ»ΠΈΠΊΠΎΠΌ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΠΈ Ρ€Π°Π΄ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€Π° Π½Π° Π’ΠŸΠ‘. Π‘Π²ΠΈΠΌ Π½ΠΎΠ²ΠΈΠΌ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΠΈΠΌΠ° сС дајС 3 Π΄Π°Π½Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ° бСсплатно.

Π”Ρ€Π°Π³ΠΈ Ρ‡ΠΈΡ‚Π°ΠΎΡ†ΠΈ! Како Π°ΡƒΡ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΡƒΡ˜Π΅Ρ‚Π΅ Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС?

Π”ΠΎΡ†ΠΊΠ΅Ρ€ ЦомпосС: ΠŸΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™ΠΈΠ²Π°ΡšΠ΅ вашСг Ρ€Π°Π΄Π° ΠΏΠΎΠΌΠΎΡ›Ρƒ ΠœΠ°ΠΊΠ΅Ρ„ΠΈΠ»Π΅Ρ-Π°

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€