Π”Π°Π»ΠΈ Π”ΠΎΠΊΠ΅Ρ€ Π΅ ΠΈΠ³Ρ€Π°Ρ‡ΠΊΠ° ΠΈΠ»ΠΈ Π½Π΅? Или сСпак Π΅ вистина?

Π—Π΄Ρ€Π°Π²ΠΎ Π½Π° ситС!

Навистина сакам Π΄Π° Π½Π°Π²Π»Π΅Π·Π°ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π°, Π½ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΠΊΠ°ΠΆΠ°ΠΌ ΠΌΠ°Π»ΠΊΡƒ Π·Π° ΠΌΠΎΡ˜Π°Ρ‚Π° ΠΏΡ€ΠΈΠΊΠ°Π·Π½Π°:

Π’Π»Π΅Π³ΡƒΠ²Π°ΡšΠ΅

Јас сум ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ со искуство Π²ΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° frontend Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Π΅Π΄Π½Π° страница, scala/java ΠΈ nodejs Π½Π° сСрвСрот.

Доста Π΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ (Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ‚ΠΈΠ²Π½ΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ) Π±Π΅Π² Π½Π° мислСњС Π΄Π΅ΠΊΠ° Docker Π΅ ΠΌΠ°Π½Π° ΠΎΠ΄ Π½Π΅Π±ΠΎΡ‚ΠΎ ΠΈ Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ ΠΊΡƒΠ» Π°Π»Π°Ρ‚ΠΊΠ° ΠΈ апсолутно сСкој Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ја користи. И ΠΎΠ΄ ΠΎΠ²Π° ΠΏΡ€ΠΎΠΈΠ·Π»Π΅Π³ΡƒΠ²Π° Π΄Π΅ΠΊΠ° сСкој Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠΌΠ° инсталирано Docker Π½Π° ΡΠ²ΠΎΡ˜Π°Ρ‚Π° Π»ΠΎΠΊΠ°Π»Π½Π° машина. Π¨Ρ‚ΠΎ Π΅ со ΠΌΠΎΠ΅Ρ‚ΠΎ мислСњС, ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π³ΠΈ слободнитС Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ мСста ΡˆΡ‚ΠΎ сС објавСни Π½Π° истото Ρ‡. БСкој Π²Ρ‚ΠΎΡ€ содрТи ΡΠΏΠΎΠΌΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° docker, ΠΈ Π°ΠΊΠΎ Π³ΠΎ посСдуватС, ΠΎΠ²Π° ќС Π±ΠΈΠ΄Π΅ Π²Π°ΡˆΠ°Ρ‚Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½Π° прСдност πŸ˜‰

На ΠΌΠΎΡ˜ΠΎΡ‚ ΠΏΠ°Ρ‚, Π·Π°ΠΏΠΎΠ·Π½Π°Π² ΠΌΠ½ΠΎΠ³Ρƒ Π»ΡƒΡ“Π΅, со Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ставови ΠΊΠΎΠ½ Π”ΠΎΠΊΠ΅Ρ€ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ СкосистСм. НСкои Ρ€Π΅ΠΊΠΎΠ° Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π½Π΅ΡˆΡ‚ΠΎ ΡˆΡ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° функционалност Π½Π° повСќС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ. На Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π½Π΅ ΠΈΠΌ бСшС јасно Π·ΠΎΡˆΡ‚ΠΎ Π΄Π° Ρ‚Ρ€Ρ‡Π°Π°Ρ‚ Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ ΠΊΠ°ΠΊΠΎΠ² ΠΏΡ€ΠΎΡ„ΠΈΡ‚ ќС ΠΈΠΌΠ° ΠΎΠ΄ Ρ‚ΠΎΠ°, Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈΡ‚Π΅ Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ Π½Π΅ ΠΈΠΌ бСшС Π³Ρ€ΠΈΠΆΠ° ΠΈ Π½Π΅ сС Π·Π°ΠΌΠ°Ρ€Π°Π° (само Π³ΠΎ напишаа ΠΊΠΎΠ΄ΠΎΡ‚ ΠΈ си ΠΎΡ‚ΠΈΠ΄ΠΎΠ° Π΄ΠΎΠΌΠ° - ΠΈΠΌ Π·Π°Π²ΠΈΠ΄ΡƒΠ²Π°ΠΌ, ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½ :)

ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°

Π—ΠΎΡˆΡ‚ΠΎ користСв Π΄ΠΎΠΊΠ΅Ρ€? Π’Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ ΠΎΠ΄ слСднивС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ:

  • ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, 99% ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ Π³ΠΈ користат
  • Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° nginx Π·Π° Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° Π½Π° ΠΏΡ€Π΅Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π» ΠΈ прокси Π½Π° Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π»
  • ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја спакуватС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ слика, Π½Π° овој Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΡ˜Π°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ќС Ρ€Π°Π±ΠΎΡ‚ΠΈ сСкадС ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ постои Π΄ΠΎΠΊΠ΅Ρ€, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ со Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π°Ρ‚Π° сС Ρ€Π΅ΡˆΠ°Π²Π° вСднаш
  • ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° услугата Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ ΠΊΡƒΡ‚ΠΈΡ˜Π°Ρ‚Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ микросСрвиси, сСкој ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ (ΠΏΠΎΠ²Ρ€Π·Π°Π½ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠ° ΠΌΡ€Π΅ΠΆΠ°) лСсно ΠΌΠΎΠΆΠ΅ Π΄Π° стигнС Π΄ΠΎ Π΄Ρ€ΡƒΠ³ ΠΏΡ€Π΅ΠΊΡƒ псСвдоним, ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΠ΄ΠΎΠ±Π΅Π½
  • Π—Π°Π±Π°Π²Π½ΠΎ Π΅ Π΄Π° сС создадС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ ΠΈ Π΄Π° сС β€žΠΈΠ³Ρ€Π°β€œ Π²ΠΎ Π½Π΅Π³ΠΎ.

Она ΡˆΡ‚ΠΎ сСкогаш НЕ ΠΌΠΈ сС Π΄ΠΎΠΏΠ°Ρ“Π° кај Π΄ΠΎΠΊΠ΅Ρ€:

  • Π—Π° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΌΠΎΡ˜Π°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ, ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° самиот Docker Π½Π° сСрвСрот. Π—ΠΎΡˆΡ‚ΠΎ ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° ΠΎΠ²Π° Π°ΠΊΠΎ ΠΌΠΎΠΈΡ‚Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π½Π° jre ΠΈΠ»ΠΈ nodejs ΠΈ ΠΎΠΊΠΎΠ»ΠΈΠ½Π°Ρ‚Π° Π·Π° Π½ΠΈΠ² Π΅ вСќС Π½Π° сСрвСрот?
  • Π°ΠΊΠΎ сакам Π΄Π° ја стартувам ΠΌΠΎΡ˜Π°Ρ‚Π° (ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Π°) Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° слика Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ сСрвСр, Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° сопствСно ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ Π·Π° Π΄ΠΎΠΊΠ΅Ρ€, ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° рСгистарот Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π΅ΠΊΠ°Π΄Π΅ ΠΈ исто Ρ‚Π°ΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌ https, бидСјќи docker cli Ρ€Π°Π±ΠΎΡ‚ΠΈ само ΠΏΡ€Π΅ΠΊΡƒ https. О, ΠΏΠΎ Ρ“Π°Π²ΠΎΠ»ΠΈΡ‚Π΅... ΠΈΠΌΠ° ΠΎΠΏΡ†ΠΈΠΈ, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π΄Π° ја Π·Π°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ сликата Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΏΡ€Π΅ΠΊΡƒ docker save ΠΈ само испратСтС ја сликата ΠΏΡ€Π΅ΠΊΡƒ scp... Но, Ρ‚ΠΎΠ° сС ΠΌΠ½ΠΎΠ³Ρƒ двиТСња Π½Π° Ρ‚Π΅Π»ΠΎΡ‚ΠΎ. И ΠΏΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΊΠ°ΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° β€žΠΏΠ°Ρ‚Π΅Ρ€ΠΈΡ†ΠΈβ€œ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π½Π΅ сС појави Π²Π°ΡˆΠ΅Ρ‚ΠΎ сопствСно ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅
  • docker-compose. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π΅ само Π·Π° ΠΏΡƒΡˆΡ‚Π°ΡšΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ. Π’ΠΎΠ° Π΅ сС. Вој Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½ΠΈΡˆΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ. Docker-compose ΠΈΠΌΠ° Π΅Π΄Π΅Π½ ΠΊΡƒΠΏ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ, своја синтакса. ΠšΠΎΠ»ΠΊΡƒ ΠΈ Π΄Π° Π΅ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ, Π½Π΅ сакам Π΄Π° ΠΈΠΌ ја Ρ‡ΠΈΡ‚Π°ΠΌ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°. НСма Π΄Π° ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° Π½ΠΈΠΊΠ°Π΄Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎ мСсто.
  • ΠΊΠΎΠ³Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ Π²ΠΎ Ρ‚ΠΈΠΌ, ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ Π»ΡƒΡ“Π΅ ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ Dockerfile ΠΌΠ½ΠΎΠ³Ρƒ ΠΊΡ€ΠΈΠ²ΠΎ, Π½Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Π°Ρ‚ ΠΊΠ°ΠΊΠΎ сС ΠΊΠ΅ΡˆΠΈΡ€Π°, Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ‚ сè ΡˆΡ‚ΠΎ ΠΈΠΌ Ρ‚Ρ€Π΅Π±Π° ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π½Π° сликата, наслСдуваат ΠΎΠ΄ слики ΡˆΡ‚ΠΎ Π½Π΅ сС Π²ΠΎ Dockerhub ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅, создаваат Π½Π΅ΠΊΠΎΠΈ docker-compose Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ со Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Π½ΠΈΡˆΡ‚ΠΎ Π½Π΅ ΠΎΠΏΡΡ‚ΠΎΡ˜ΡƒΠ²Π°. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π³ΠΎΡ€Π΄ΠΎ ΠΈΠ·Ρ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π΄Π΅ΠΊΠ° Docker Π΅ ΠΊΡƒΠ», сè Ρ€Π°Π±ΠΎΡ‚ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΎ Π·Π° Π½ΠΈΠ², Π° HR најваТно ΠΏΠΈΡˆΡƒΠ²Π° Π½Π° огласот: β€žΠΠΈΠ΅ користимС Docker ΠΈ Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ со Ρ‚Π°ΠΊΠ²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ ΠΈΡΠΊΡƒΡΡ‚Π²ΠΎβ€œ.
  • ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ ΠΌΠ΅ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡƒΠ²Π°Π°Ρ‚ мислитС Π·Π° подигањС Π½Π° сè Π²ΠΎ Docker: postgresql, kafka, redis. Π¨Ρ‚Π΅Ρ‚Π° Π΅ ΡˆΡ‚ΠΎ Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° сè Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, Π½Π΅ Π΅ сè лСсно Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Ова Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΎ ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚ΠΈ Π»ΠΈΡ†Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ, Π° Π½Π΅ ΠΎΠ΄ самитС ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ΠΈ. И, ΠΏΠ°Ρ‚Π΅ΠΌ, вСднаш сС поставува ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ: ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π΅ сС Π³Ρ€ΠΈΠΆΠ°Ρ‚ Π·Π° ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ Π²ΠΎ Docker, Π·ΠΎΡˆΡ‚ΠΎ Π΅ ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅Π±ΠΈ Ρ‚ΠΈΠ΅ Π·Π½Π°Π°Ρ‚ Π½Π΅ΡˆΡ‚ΠΎ?
  • ΠŸΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ сСкогаш сС поставува Π·Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎΡΡ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΡΠΊΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. ΠΈ Ρ‚ΠΎΠ³Π°Ρˆ мислитС, Π΄Π°Π»ΠΈ Ρ‚Ρ€Π΅Π±Π° само Π΄Π° Π³ΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ Π½Π° Π΄ΠΎΠΌΠ°ΡœΠΈΠ½ΠΎΡ‚ ΠΈΠ»ΠΈ Π΄Π° создадам Π΄ΠΎΠΊΠ΅Ρ€ Π²ΠΎΠ»ΡƒΠΌΠ΅Π½ ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΡˆΡ‚ΠΎ Π΅ сСга deprecated? Ако ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ, Ρ‚ΠΎΠ³Π°Ρˆ Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΡƒΠ²Π΅Ρ€Π°ΠΌ Π΄Π΅ΠΊΠ° uid ΠΈ gid Π½Π° корисникот Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚ сС совпаѓаат со ID Π½Π° корисникот кој Π³ΠΎ стартувал ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚, ΠΈΠ½Π°ΠΊΡƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ создадСни ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚ ќС сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ со ΠΏΡ€Π°Π²Π° Π½Π° root. Ако користам volume Ρ‚ΠΎΠ³Π°Ρˆ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Сдноставно ќС сС ΠΊΡ€Π΅ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ /usr/* ΠΈ ќС ΠΈΠΌΠ° иста ΠΏΡ€ΠΈΠΊΠ°Π·Π½Π° со ΡƒΠΈΠ΄ ΠΈ Π³ΠΈΠ΄ ΠΊΠ°ΠΊΠΎ Π²ΠΎ ΠΏΡ€Π²ΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜. Ако стартуватС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚Π° страна, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ Π΄Π° Π³ΠΎ ΠΏΠΎΠ±Π°Ρ€Π°Ρ‚Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΎΡ‚ Π½Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ: β€žΠ²ΠΎ ΠΊΠΎΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ Π½Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ‚Π° Π·Π°ΠΏΠΈΡˆΡƒΠ²Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ?

ΠžΡ‚ΡΠ΅ΠΊΠΎΠ³Π°Ρˆ Π½Π΅ ΠΌΠΈ сС Π΄ΠΎΠΏΠ°Ρ“Π°ΡˆΠ΅ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΠ»Π³ΠΎ ΠΌΠΎΡ€Π°Π² Π΄Π° сС Ρ‡Π΅ΠΏΠΊΠ°ΠΌ со Π”ΠΎΠΊΠ΅Ρ€ Π²ΠΎ ΠΏΠΎΡ‡Π΅Ρ‚Π½Π°Ρ‚Π° Ρ„Π°Π·Π°: Π‘Ρ„Π°Ρ‚ΠΈΠ² ΠΊΠ°ΠΊΠΎ Π΄Π° стартувам ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ слики Π΄Π° стартувам, Π½Π°ΠΏΡ€Π°Π²ΠΈΠ² Make-Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΡˆΡ‚ΠΎ содрТСа псСвдоними Π½Π° Π΄ΠΎΠ»Π³ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π½Π° Docker. Π“ΠΎ ΠΌΡ€Π°Π·Π΅Π² docker-compose Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π½Π΅ сакав Π΄Π° Π½Π°ΡƒΡ‡Π°ΠΌ Π΄Ρ€ΡƒΠ³Π° Π°Π»Π°Ρ‚ΠΊΠ° Π²ΠΎ СкосистСмот Π½Π° Π΄ΠΎΠΊΠ΅Ρ€. И docker-compose up Ми ΠΏΡ€Π΅Ρ‡Π΅ΡˆΠ΅, особСно Π°ΠΊΠΎ сС ΡƒΡˆΡ‚Π΅ сС срСтнаа Ρ‚Π°ΠΌΡƒ build конструкции, намСсто вСќС составСни слики. Π‘Γ¨ ΡˆΡ‚ΠΎ навистина сакав бСшС само Π΄Π° Π½Π°ΠΏΡ€Π°Π²Π°ΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ Сфикасно ΠΈ Π±Ρ€Π·ΠΎ. Но, Π½Π΅ ΠΌΠΎΠΆΠ΅Π² Π΄Π° сфатам ΠΊΠ°ΠΊΠΎ Π΄Π° користам Π΄ΠΎΠΊΠ΅Ρ€.

Π’ΠΈ Π³ΠΎ прСтставувамС Ansible

НСодамна (ΠΏΡ€Π΅Π΄ Ρ‚Ρ€ΠΈ мСсСци) Ρ€Π°Π±ΠΎΡ‚Π΅Π² со Ρ‚ΠΈΠΌ Π½Π° DevOps, Ρ‡ΠΈΡ˜ рСчиси сСкој Ρ‡Π»Π΅Π½ имашС Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π΅Π½ став ΠΊΠΎΠ½ Docker. Од ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ:

  • docker ΠΏΡ€Π°Π²ΠΈΠ»Π° iptables (ΠΈΠ°ΠΊΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡ‚Π΅ Π²ΠΎ daemon.json)
  • docker Π΅ ΠΊΠ°Π±Ρ€ΠΈΠΎΠ»Π΅Ρ‚ ΠΈ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΎ ΠΏΡƒΡˆΡ‚ΠΈΠΌΠ΅ Π²ΠΎ производство
  • Π°ΠΊΠΎ Π΄ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½ΠΎΡ‚ ΠΏΠ°Π΄Π½Π΅, Ρ‚ΠΎΠ³Π°Ρˆ ситС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ со инфраструктура ΠΏΠ°Ρ“Π°Π°Ρ‚ соодвСтно
  • Π½Π΅ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ Π΄ΠΎΠΊΠ΅Ρ€
  • Π·ΠΎΡˆΡ‚ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ Π°ΠΊΠΎ ΠΈΠΌΠ° Ansible ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈ машини

На истата Ρ€Π°Π±ΠΎΡ‚Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Π² со ΡƒΡˆΡ‚Π΅ Π΅Π΄Π½Π° Π°Π»Π°Ρ‚ΠΊΠ° - Ansible. Π‘Π»ΡƒΡˆΠ½Π°Π² Π·Π° Ρ‚ΠΎΠ° Сднаш, Π½ΠΎ Π½Π΅ сС ΠΎΠ±ΠΈΠ΄ΠΎΠ² Π΄Π° напишам свои ΠΊΠ½ΠΈΠ³ΠΈ. И сСга ΠΏΠΎΡ‡Π½Π°Π² Π΄Π° Π³ΠΈ ΠΏΠΈΡˆΡƒΠ²Π°ΠΌ ΠΌΠΎΠΈΡ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ‚ΠΎΠ³Π°Ρˆ ΠΌΠΎΡ˜Π°Ρ‚Π° визија цСлосно сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ! Π—Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ сфатив: Ansible ΠΈΠΌΠ° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° водСњС Π½Π° исти Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, Π³Ρ€Π°Π΄Π±ΠΈ Π½Π° слики, ΠΌΡ€Π΅ΠΆΠΈ ΠΈΡ‚Π½., Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ Π½Π΅ само Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Ρ‚ΡƒΠΊΡƒ ΠΈ Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ сСрвСри! ΠœΠΎΠ΅Ρ‚ΠΎ задоволство нСмашС Π³Ρ€Π°Π½ΠΈΡ†ΠΈ - најдов ΠΠžΠ ΠœΠΠ›ΠΠ Π°Π»Π°Ρ‚ΠΊΠ° ΠΈ Π³ΠΈ Ρ„Ρ€Π»ΠΈΠ² ΠΌΠΎΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Makefile ΠΈ docker-compose, Ρ‚ΠΈΠ΅ Π±Π΅Π° Π·Π°ΠΌΠ΅Π½Π΅Ρ‚ΠΈ со yaml Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΠΎΠ΄ΠΎΡ‚ бСшС Π½Π°ΠΌΠ°Π»Π΅Π½ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° конструкции ΠΊΠ°ΠΊΠΎ loop, when, Π˜Ρ‚Π½

Π”ΠΎΠΊΠ΅Ρ€ Π·Π° водСњС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚ΠΈ страни ΠΊΠ°ΠΊΠΎ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ

НСодамна сС Π·Π°ΠΏΠΎΠ·Π½Π°Π² со ssh Ρ‚ΡƒΠ½Π΅Π»ΠΈΡ‚Π΅. Π‘Π΅ испостави Π΄Π΅ΠΊΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ лСсно Π΄Π° сС β€žΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΈβ€œ ΠΏΡ€ΠΈΡΡ‚Π°Π½ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ сСрвСр Π΄ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΏΡ€ΠΈΡΡ‚Π°Π½ΠΈΡˆΡ‚Π΅. ДалСчинскиот сСрвСр ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΠΈΠ»ΠΈ машина Π²ΠΎ ΠΎΠ±Π»Π°ΠΊΠΎΡ‚ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ VirtualBox. Ако Π½Π° ΠΌΠΎΡ˜ΠΎΡ‚ ΠΊΠΎΠ»Π΅Π³Π° ΠΈΠ»ΠΈ Π½Π° ΠΌΠ΅Π½Π΅ Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ (ΠΈΠ»ΠΈ нСкоја Π΄Ρ€ΡƒΠ³Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚Π° страна), ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Сдноставно Π΄Π° Π³ΠΎ стартувамС сСрвСрот со ΠΎΠ²Π°Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΈ Π΄Π° Π³ΠΎ исклучимС ΠΊΠΎΠ³Π° сСрвСрот Π½Π΅ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½. ΠŸΡ€Π΅ΠΏΡ€Π°ΡœΠ°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ€Ρ‚Π°Ρ‚Π° Π³ΠΎ Π΄Π°Π²Π° истиот Π΅Ρ„Π΅ΠΊΡ‚ ΠΊΠ°ΠΊΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€.

Оваа ΠΊΠΎΠΌΠ°Π½Π΄Π° ја ΠΏΡ€Π΅ΠΏΡ€Π°ΡœΠ° ΠΌΠΎΡ˜Π°Ρ‚Π° Π»ΠΎΠΊΠ°Π»Π½Π° ΠΏΠΎΡ€Ρ‚Π° Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ сСрвСр ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ postgresql:

ssh -L 9000:localhost:5432 [Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½Π° ΠΏΠΎ Π΅-ΠΏΠΎΡˆΡ‚Π°]

ΠšΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° далСчински сСрвСр Π³ΠΎ Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ со Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° Ρ‚ΠΈΠΌΠΎΡ‚. Π’Π°ΠΊΠ²ΠΈΠΎΡ‚ сСрвСр ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ користат Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ одСднаш; Ρ‚ΠΈΠ΅ Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π°Ρ‚ postgresql, Π΄Π° Π³ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π°Ρ‚ Docker ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ слоТСности. На ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ сСрвСр, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја инсталиратС истата Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ самиот Docker, Π°ΠΊΠΎ Π΅ Ρ‚Π΅ΡˆΠΊΠΎ Π΄Π° сС инсталира ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°. Π‘Γ¨ ΡˆΡ‚ΠΎ ΠΈΠΌ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π΅ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ‚ ssh пристап!

НСодамна ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π² Π΄Π΅ΠΊΠ° SSH Ρ‚ΡƒΠ½Π΅Π»ΠΈΡ‚Π΅ сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° функционалност Π½Π° ΠΎΠ±ΠΈΡ‡Π΅Π½ VPN! ΠœΠΎΠΆΠ΅Ρ‚Π΅ Сдноставно Π΄Π° инсталиратС OpenVPN ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° VPN, Π΄Π° ја поставитС инфраструктурата ΠΈ Π΄Π° ΠΈΠΌ ја Π΄Π°Π΄Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. Ова Π΅ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΊΡƒΠ»!

Π—Π° ΡΡ€Π΅ΡœΠ°, AWS, GoogleCloud ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π²ΠΈ Π΄Π°Π²Π°Π°Ρ‚ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° бСсплатно ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅, Π·Π°Ρ‚ΠΎΠ° искористСтС Π³ΠΈ! Π’ΠΈΠ΅ сС Π΅Π²Ρ‚ΠΈΠ½ΠΈ Π°ΠΊΠΎ Π³ΠΈ исклучитС ΠΊΠΎΠ³Π° Π½Π΅ сС Π²ΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°. БСкогаш сС ΠΏΡ€Π°ΡˆΡƒΠ²Π°Π² Π·ΠΎΡˆΡ‚ΠΎ ќС ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° далСчински сСрвСр ΠΊΠ°ΠΊΠΎ gcloud, ΠΈΠ·Π³Π»Π΅Π΄Π° Π³ΠΈ најдов.

Како Π»ΠΎΠΊΠ°Π»Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ користитС истиот Alpine, кој Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ сС користи Π²ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ Π·Π° Π΄ΠΎΠΊΠ΅Ρ€. Па, ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΠΈ Π΄Ρ€ΡƒΠ³ΠΈ лСсни дистрибуции Π·Π° Π΄Π° сС ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° ΠΏΠΎΠ±Ρ€Π·ΠΎ.

ΠšΡ€Π°Ρ˜Π½Π° линија: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Ρ‚Π΅ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ инфраструктурни Π΄ΠΎΠ±Ρ€ΠΈΠ½ΠΈ Π½Π° ΠΎΠ΄Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ сСрвСри ΠΈΠ»ΠΈ Π²ΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° ΠΊΡƒΡ‚ΠΈΡ˜Π°. НС ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄ΠΎΠΊΠ΅Ρ€ Π·Π° ΠΎΠ²ΠΈΠ΅ Ρ†Π΅Π»ΠΈ.

ΠœΠ°Π»ΠΊΡƒ Π·Π° докСрскитС слики ΠΈ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π°Ρ‚Π°

Π’Π΅ΡœΠ΅ напишав ΡΡ‚Π°Ρ‚ΡŒΡŽ Π²ΠΎ кој сакав Π΄Π° прСнСсам Π΄Π΅ΠΊΠ° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ слики Π½Π΅ Π΄Π°Π²Π° Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Π°. ДокСрскитС слики сС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ само Π·Π° Π΄Π° сС создадС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π·Π° Π΄ΠΎΠΊΠ΅Ρ€. Ако Π½Π°Π΄Π³Ρ€Π°Π΄ΡƒΠ²Π°Ρ‚Π΅ докСрска слика, Ρ‚ΠΎΠ³Π°Ρˆ сС Π½Π°Π΄Π³Ρ€Π°Π΄ΡƒΠ²Π°Ρ‚Π΅ Π·Π° Π΄Π° користитС Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ ќС Π³ΠΈ користитС само.

Π”Π°Π»ΠΈ стС Π²ΠΈΠ΄Π΅Π»Π΅ Π½Π΅ΠΊΠ°Π΄Π΅ ΠΊΠ°Π΄Π΅ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° софтвСр Π³ΠΈ прСнСсуваат своитС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ само Π²ΠΎ докСрска слика?
Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΎΠ΄ ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ сС Π±ΠΈΠ½Π°Ρ€Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π·Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°; Ρ‚ΠΈΠ΅ Сдноставно сС Π΄ΠΎΠ΄Π°Π²Π°Π°Ρ‚ Π½Π° сликата Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ΠΎΡ‚, која Π΅ наслСдСна ΠΎΠ΄ саканата ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. Π”Π°Π»ΠΈ нСкогаш стС сС Π·Π°ΠΏΡ€Π°ΡˆΠ°Π»Π΅ Π·ΠΎΡˆΡ‚ΠΎ ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΠΊΡƒ ΠΌΠ½ΠΎΠ³Ρƒ слични слики Π½Π° dockerhub? ВнСсСтС nginx Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ќС Π²ΠΈΠ΄ΠΈΡ‚Π΅ 100500 слики ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π»ΡƒΡ“Π΅. ОвиС Π»ΡƒΡ“Π΅ Π½Π΅ Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ˜Π° самиот nginx, Ρ‚ΠΈΠ΅ Сдноставно Π΄ΠΎΠ΄Π°Π΄ΠΎΠ° ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π΅Π½ nginx Π½Π° Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ Π΄ΠΎΠΊΠ΅Ρ€ имиџ ΠΈ Π³ΠΎ Π·Π°Ρ‡ΠΈΠ½ΠΈΡ˜Π° со свои ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° практичноста Π½Π° Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ.

Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Сдноставно Π΄Π° Π³ΠΎ складиратС Π²ΠΎ tgz, Π°ΠΊΠΎ нСкој Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΈΠ·Π²Ρ€ΡˆΠΈ Π²ΠΎ docker, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π΅ΠΊΠ° Π³ΠΎ Π΄ΠΎΠ΄Π°Π΄Π΅ tgz Π²ΠΎ Dockerfile, Π΄Π° наслСди ΠΎΠ΄ саканата ΠΎΠΊΠΎΠ»ΠΈΠ½Π° ΠΈ Π΄Π° создадС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π±ΡƒΡ…Ρ‚ΠΈ ΠΊΠΎΠΈ Π½Π΅ ја ΠΌΠ΅Π½ΡƒΠ²Π°Π°Ρ‚ самата Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° Π²ΠΎ tgz. БСкој ΡˆΡ‚ΠΎ ќС создадС Π΄ΠΎΠΊΠ΅Ρ€ слика ќС Π·Π½Π°Π΅ ΡˆΡ‚ΠΎ Π΅ tgz ΠΈ ΡˆΡ‚ΠΎ ΠΌΡƒ Ρ‚Ρ€Π΅Π±Π° Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π’Π°ΠΊΠ° користам Π΄ΠΎΠΊΠ΅Ρ€ Ρ‚ΡƒΠΊΠ°

ΠšΡ€Π°Ρ˜Π½Π° линија: Π½Π΅ ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄ΠΎΠΊΠ΅Ρ€ рСгистар, ќС користам нСкој Π²ΠΈΠ΄ S3 ΠΈΠ»ΠΈ само ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°ΠΊΠΎ Google Drive/dropbox

Π”ΠΎΠΊΠ΅Ρ€ Π²ΠΎ CI

Π‘ΠΈΡ‚Π΅ Ρ„ΠΈΡ€ΠΌΠΈ Π·Π° ΠΊΠΎΠΈ сум Ρ€Π°Π±ΠΎΡ‚Π΅Π» сС слични. Π’ΠΈΠ΅ сС ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π½Π°ΠΌΠΈΡ€Π½ΠΈΡ†ΠΈ. Π’ΠΎΠ° Π΅, Ρ‚ΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ‚ Π΅Π΄Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°, Π΅Π΄Π΅Π½ стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π° (Π΄ΠΎΠ±Ρ€ΠΎ, ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ програмски Ρ˜Π°Π·ΠΈΡ†ΠΈ).

ОвиС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ користат Π΄ΠΎΠΊΠ΅Ρ€ Π½Π° Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ сСрвСри ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ процСсот CI. ΠŸΡ€Π°ΡˆΠ°ΡšΠ΅: Π—ΠΎΡˆΡ‚ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π²ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ сСрвСри? Π—ΠΎΡˆΡ‚ΠΎ само Π΄Π° Π½Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΡ‚Π΅ срСдина Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π°, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ansible Playbook која ќС Π³ΠΈ инсталира ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΡ‚Π΅ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° nodejs, php, jdk, ΠΊΠΎΠΏΠΈΡ€Π°Ρ˜Ρ‚Π΅ ssh ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ ΠΈΡ‚Π½. Π½Π° сСрвСрот Π²ΠΎ кој ќС сС ΠΎΠ΄Π²ΠΈΠ²Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π°?

Π‘Π΅Π³Π° Ρ€Π°Π·Π±Ρ€Π°Π² Π΄Π΅ΠΊΠ° ΠΎΠ²Π° си ΠΏΡƒΠΊΠ° Π²ΠΎ Π½ΠΎΠ³Π°, бидСјќи Π΄ΠΎΠΊΠ΅Ρ€ Π½Π΅ носи Π½ΠΈΠΊΠ°ΠΊΠΎΠ² ΠΏΡ€ΠΎΡ„ΠΈΡ‚ со ΡΠ²ΠΎΡ˜Π°Ρ‚Π° ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΡˆΡ‚ΠΎ Π³ΠΈ срСтнав со CI Π²ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ΠΎΡ‚:

  • ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄ΠΎΠΊΠ΅Ρ€ слика Π·Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅. Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±Π°Ρ€Π°Ρ‚Π΅ слика ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ своја сопствСна dockerfile.
  • 90% Π΄Π΅ΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΠΈ ssh ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ, Ρ‚Π°Ρ˜Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΡˆΡ‚ΠΎ Π½Π΅ сакатС Π΄Π° Π³ΠΈ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π° сликата Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ΠΎΡ‚.
  • ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΎΡ‚ сС создава ΠΈ ΡƒΠΌΠΈΡ€Π°, ситС кСшови сС Π³ΡƒΠ±Π°Ρ‚ Π·Π°Π΅Π΄Π½ΠΎ со Π½Π΅Π³ΠΎ. слСдната ΠΈΠ·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ќС Π³ΠΈ ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅ ситС зависности ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚, ΡˆΡ‚ΠΎ ΠΎΠ΄Π·Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΅ нССфикасно, Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π΅ ΠΏΠ°Ρ€ΠΈ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ Π³Ρ€Π°Π΄Π°Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π²ΠΎ Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ (нСкогаш Π±Π΅Π² Ρ‚Π°ΠΊΠΎΠ² ΠΎΠ±ΠΎΠΆΠ°Π²Π°Ρ‚Π΅Π», навистина, сС ΠΆΠ°Π»Π°ΠΌ Π·Π° сСбС Π²ΠΎ ΠΌΠΈΠ½Π°Ρ‚ΠΎΡ‚ΠΎ xD). Π’ΠΎ java Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π²Π΅Ρ€Π·ΠΈΠΈ ΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ со Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° ΠΎΠ½Π°Π° ΡˆΡ‚ΠΎ Π²ΠΈ Ρ‚Ρ€Π΅Π±Π° сСга. Π’ΠΎ nodejs Π΅ исто, ΠΈΠΌΠ° nvm.

ИзлСз

Π’Π΅Ρ€ΡƒΠ²Π°ΠΌ Π΄Π΅ΠΊΠ° Π΄ΠΎΠΊΠ΅Ρ€ΠΎΡ‚ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ моќна ΠΈ флСксибилна Π°Π»Π°Ρ‚ΠΊΠ°, ΠΎΠ²Π° Π΅ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ‚ нСдостаток (Π·Π²ΡƒΡ‡ΠΈ Ρ‡ΡƒΠ΄Π½ΠΎ, Π΄Π°). Π‘ΠΎ Π½Π΅Π³ΠΎΠ²Π° помош, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ°Ρ‚ лСсно Π΄Π° сС Π·Π°ΠΊΠ°Ρ‡Π°Ρ‚ Π½Π° Π½Π΅Π³ΠΎ ΠΈ Π΄Π° Π³ΠΎ користат ΠΎΠ½Π°ΠΌΡƒ ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ, Π° Π½Π΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π³ΠΈ лансираат своитС ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ, Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΎΠΊΠΎΠ»ΠΈΠ½ΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠ° сСто Ρ‚ΠΎΠ° Π½Π΅ΠΏΡ€Π΅Ρ‡Π΅Π½ΠΎ сС Π²Π»Π΅Π²Π° Π²ΠΎ CI ΠΈ производство. Π’ΠΈΠΌΠΎΡ‚ Π½Π° DevOps ΠΏΠΈΡˆΡƒΠ²Π° нСкој Π²ΠΈΠ΄ Π½Π° ΠΊΠΎΠ΄ Π·Π° Π΄Π° Π³ΠΈ стартува ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ‚Π΅ само Π΄ΠΎΠΊΠ΅Ρ€ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΎ Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΠΎΡ‚ Ρ„Π°Π·Π° Π²ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ‚Π΅ΠΊ, Π½Π΅ Π³ΠΎ Π²Π»Π΅Ρ‡Π΅Ρ‚Π΅ Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚. Π’ΠΎΠ° Π½Π΅ΠΌΠ° Π΄Π° Π²ΠΈ Π³ΠΈ Ρ€Π΅ΡˆΠΈ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Вој само ќС Π³ΠΈ прСмСсти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π° Π”Π Π£Π“Πž Π½ΠΈΠ²ΠΎ ΠΈ ќС ΠΏΠΎΠ½ΡƒΠ΄ΠΈ свои Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°, Π²ΠΈΠ΅ ќС Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ двојна Ρ€Π°Π±ΠΎΡ‚Π°.

Кога Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ Π΄ΠΎΠΊΠ΅Ρ€: Π”ΠΎΡ˜Π΄ΠΎΠ² Π΄ΠΎ Π·Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ Π΄Π΅ΠΊΠ° docker Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Ρ€ Π²ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π°Π΄Π΅Π½ процСс, Π½ΠΎ Π½Π΅ ΠΈ Π²ΠΎ Π³Ρ€Π°Π΄Π΅ΡšΠ΅ Π½Π° основна функционалност

Ако сСпак ΠΎΠ΄Π»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π° користитС Π΄ΠΎΠΊΠ΅Ρ€, Ρ‚ΠΎΠ³Π°Ρˆ:

  • Π±ΠΈΠ΄Π΅Ρ‚Π΅ исклучитСлно Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΈ
  • Π½Π΅ Π³ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π΄Π° користат Π΄ΠΎΠΊΠ΅Ρ€
  • Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ја Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Π΅Π΄Π½ΠΎ мСсто, Π½Π΅ ΡˆΠΈΡ€Π΅Ρ‚Π΅ ја Π½ΠΈΠ· ситС ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π° Π½Π° Dockfile ΠΈ docker-compose

PS:

Π’ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π°ΠΌ ΡˆΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π²Ρ‚Π΅, Π²ΠΈ посакувам транспарСнтни ΠΎΠ΄Π»ΡƒΠΊΠΈ Π²ΠΎ Π²Π°ΡˆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ Π΄Π΅Π½ΠΎΠ²ΠΈ!

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

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