Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles

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

Π“ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΈ услуги сСга сС Π·Π°ΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ со нСзависни, Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΈ микросСрвиси. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° сС смСта ΠΊΠ°ΠΊΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° која слуТи Π·Π° СдинствСна ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ спСцифична Ρ†Π΅Π». На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚ΠΎΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° DBMS, Express Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, услуга Solr.

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles

Π”Π΅Π½ΠΎΠ²ΠΈΠ²Π΅, Ρ‚Π΅ΡˆΠΊΠΎ Π΅ Π΄Π° сС замисли Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Π½ΠΎΠ² софтвСрски систСм Π±Π΅Π· ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° микросСрвиси. И ΠΎΠ²Π°Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°, ΠΏΠ°ΠΊ, Π½Γ¨ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Docker.

ΠΏΡ€ΠΈΡΡ‚Π°Π½ΠΈΡˆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ

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

Π”ΠΎΠΊΠ΅Ρ€ ΠšΠΎΠΌΠΏΠΎΠ½ΠΈΡ€Π°Ρ˜

ВСхнология Π”ΠΎΠΊΠ΅Ρ€ ΠšΠΎΠΌΠΏΠΎΠ½ΠΈΡ€Π°Ρ˜ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ со повСќС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Docker Compose ΠΌΠΎΠΆΠ΅ Π΄Π° содрТи ΠΎΠ½ΠΎΠ»ΠΊΡƒ Docker ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ ΠΌΡƒ Ρ‚Ρ€Π΅Π±Π° Π½Π° ΠΊΡ€Π΅Π°Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚.

Кога Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со Docker Compose, Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° YAML сС користи Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ услуги ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π½ΠΈΠ²Π½Π°Ρ‚Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° Π΅Π΄Π½ΠΈ со Π΄Ρ€ΡƒΠ³ΠΈ. Π—Π°Ρ‚ΠΎΠ°, Docker Compose Π΅ Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° ΠΎΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ Docker со повСќС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ.

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π”Π²Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° систСм домаќин

НаправСтС ГНУ

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

Π”Π° ја ΠΊΠ°ΠΆΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π° make Π·Π° Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ сакамС ΠΎΠ΄ Π½Π΅Π³ΠΎ, Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Makefile.

Π’ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° Makefile ќС содрТи Ρ€Π΅Π΄ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ docker ΠΈ docker-compose, ΠΊΠΎΠΈ сС Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°Π½ΠΈ Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. ИмСно, Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π·Π° Π½Π΅Π³ΠΎΠ²ΠΎ ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅, Π·Π°ΠΏΠΈΡ€Π°ΡšΠ΅, Ρ€Π΅ΡΡ‚Π°Ρ€Ρ‚ΠΈΡ€Π°ΡšΠ΅, Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° корисникот Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚, Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° со Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ слични ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Π’ΠΈΠΏΠΈΡ‡Π½ΠΈ случаи Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π·Π° Docker Compose

АјдС Π΄Π° замислимС ΠΎΠ±ΠΈΡ‡Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° која Π³ΠΈ ΠΈΠΌΠ° слСднитС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ:

  • TimescaleDB Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ (Postgres).
  • ΠΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Express.js.
  • Пинг (само ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€, Π½Π΅ ΠΏΡ€Π°Π²ΠΈ Π½ΠΈΡˆΡ‚ΠΎ посСбно).

На ΠΎΠ²Π°Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ќС ѝ Π±ΠΈΠ΄Π°Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ 3 ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π·Π° Docker ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° docker-compose, кој содрТи упатства Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ. БСкој ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ ќС ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° Π΄ΠΎΠΏΠΈΡ€. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ timescale ќС ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ Π½Π° ист Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ со Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. ИмСно, Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Π³ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ слСднитС Π΄Π΅Ρ˜ΡΡ‚Π²Π°:

  • ΠΠ°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ школка Postgres.
  • Π£Π²ΠΎΠ· ΠΈ ΠΈΠ·Π²ΠΎΠ· Π½Π° Ρ‚Π°Π±Π΅Π»ΠΈ.
  • создавањС pg_dump Ρ‚Π°Π±Π΅Π»ΠΈ ΠΈΠ»ΠΈ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

ΠšΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Express.js, expressjs, ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΈΠΌΠ° слСднитС способности:

  • ΠžΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ свСТи ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ систСмскиот Π΄Π½Π΅Π²Π½ΠΈΠΊ.
  • ΠŸΡ€ΠΈΡ˜Π°Π²Π΅Ρ‚Π΅ сС Π²ΠΎ школка Π·Π° Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ.

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

ΠžΡ‚ΠΊΠ°ΠΊΠΎ ќС поставимС ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Docker Compose, Π²Ρ€Π΅ΠΌΠ΅ Π΅ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ со Ρ‚ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ. Π’ΠΎ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° систСмот Docker Compose постои ΠΊΠΎΠΌΠ°Π½Π΄Π° 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

Π—Π° Π΄Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΠΌΠ΅ со ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Docker Compose ΠΈ Π΄Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ со ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π³ΠΈ ΠΎΠΏΠΈΡˆΡƒΠ²Π°, ќС ја создадСмС слСдната Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° 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.

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Помош Π·Π° достапнитС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ

  • make build - ΡΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ слика ΠΎΠ΄ Dockerfile. Π’ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ користСвмС постоСчки слики timescale ΠΈ ping. Но сликата api сакамС Π΄Π° собирамС Π»ΠΎΠΊΠ°Π»Π½ΠΎ. Ова Π΅ Ρ‚ΠΎΠΊΠΌΡƒ ΠΎΠ½Π° ΡˆΡ‚ΠΎ ќС сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ²Π°Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°.

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π˜Π·Π³Ρ€Π°Π΄Π±Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Docker

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

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π’ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚ Π·Π° врСмСнска Ρ€Π°ΠΌΠΊΠ°

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π’ΠΎΠ΄Π΅ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π·Π° ΠΏΠΈΠ½Π³

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

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π Π°Π±ΠΎΡ‚Π΅ΡšΠ΅ баш Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ со врСмСнски Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΈ

  • make db-shell - Π²Π»Π΅Π· Π²ΠΎ psql Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ timescale Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° SQL ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ° Π²ΠΎ однос Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π’ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° psql Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ timescaledb

  • make stop β€” ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π·Π° Π·Π°ΠΏΠΈΡ€Π°ΡšΠ΅.

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π—Π°ΠΏΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π·Π° врСмСнска Ρ€Π°ΠΌΠΊΠ°

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

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles
Π—Π°ΠΏΠΈΡ€Π°ΡšΠ΅ ΠΈ Π±Ρ€ΠΈΡˆΠ΅ΡšΠ΅ Π½Π° ситС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ

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

Иако Docker Compose Π½ΠΈ Π΄Π°Π²Π° Π±ΠΎΠ³Π°Ρ‚ сСт Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, понСкогаш ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° станат Π΄ΠΎΠ»Π³ΠΈ ΠΈ Ρ‚Π΅ΡˆΠΊΠΈ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Π΅ΡšΠ΅.

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

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

PS Π’ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° ΠΏΠ°Π·Π°Ρ€ ΠΈΠΌΠ° слика ΠΏΡ€ΠΈΡΡ‚Π°Π½ΠΈΡˆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, кој сС инсталира со Π΅Π΄Π΅Π½ ΠΊΠ»ΠΈΠΊ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ VPS. Π‘ΠΈΡ‚Π΅ Π½ΠΎΠ²ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°Π°Ρ‚ 3 Π΄Π΅Π½Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ бСсплатно.

ΠŸΠΎΡ‡ΠΈΡ‚ΡƒΠ²Π°Π½ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Како сС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π° Docker Compose?

Docker Compose: ΠŸΠΎΠ΅Π΄Π½ΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° со помош Π½Π° Makefiles

Π˜Π·Π²ΠΎΡ€: www.habr.com

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