Docker ΠΈΠ³Ρ€Π°Ρ‡ΠΊΠ° Π»ΠΈ Π΅ ΠΈΠ»ΠΈ Π½Π΅? Или всС ΠΎΡ‰Π΅ Π΅?

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ Π½Π° всички!

Много искам Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π° Π½Π°ΠΏΡ€Π°Π²ΠΎ към Ρ‚Π΅ΠΌΠ°Ρ‚Π°, Π½ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΠΎ-ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ° ΠΌΠ°Π»ΠΊΠΎ Π·Π° моята история:

Π’Π»ΠΈΠ·Π°Π½Π΅

Аз съм програмист с ΠΎΠΏΠΈΡ‚ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π΅Π΄Π½ΠΈ прилоТСния с Π΅Π΄Π½Π° страница, scala/java ΠΈ nodejs Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°.

Доста дълго Π²Ρ€Π΅ΠΌΠ΅ (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ няколко-Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ) бях Π½Π° ΠΌΠ½Π΅Π½ΠΈΠ΅, Ρ‡Π΅ Docker Π΅ ΠΌΠ°Π½Π½Π° нСбСсна ΠΈ ΠΊΠ°Ρ‚ΠΎ цяло ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΡ‚ΠΈΠ½ инструмСнт ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всСки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ трябва Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. И ΠΎΡ‚ Ρ‚ΠΎΠ²Π° слСдва, Ρ‡Π΅ всСки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ трябва Π΄Π° ΠΈΠΌΠ° инсталиран Docker Π½Π° Π»ΠΎΠΊΠ°Π»Π½Π°Ρ‚Π° си машина. Какво Ρ‰Π΅ ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ Π·Π° ΠΌΠΎΠ΅Ρ‚ΠΎ ΠΌΠ½Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ свободнитС Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ мСста, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ Π½Π° ΡΡŠΡ‰ΠΈΡ hh. ВсСки Π²Ρ‚ΠΎΡ€ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° спомСнаванС Π½Π° 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 Π½Π° потрСбитСля Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π° потрСбитСля, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ стартирал ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, създадСни ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ създадСни с ΠΏΡ€Π°Π²Π° Π½Π° root. Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ volume Ρ‚ΠΎΠ³Π°Π²Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ просто Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ създадСни Π² някои /usr/* ΠΈ Ρ‰Π΅ ΠΈΠΌΠ° ΡΡŠΡ‰Π°Ρ‚Π° история с uid ΠΈ gid ΠΊΠ°Ρ‚ΠΎ Π² ΠΏΡŠΡ€Π²ΠΈΡ случай. Ако стартиратС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° страна, трябва Π΄Π° ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ докумСнтацията ΠΈ Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ°: β€žΠ² ΠΊΠΎΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΡŠΡ‚ записва Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅?β€œ

Π’ΠΈΠ½Π°Π³ΠΈ Π½Π΅ ΠΌΠΈ Ρ…Π°Ρ€Π΅ΡΠ²Π°ΡˆΠ΅ Ρ„Π°ΠΊΡ‚ΡŠΡ‚, Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌ с Docker Ρ‚Π²ΡŠΡ€Π΄Π΅ дълго Π² началния Π΅Ρ‚Π°ΠΏ: Π Π°Π·Π±Ρ€Π°Ρ… ΠΊΠ°ΠΊ Π΄Π° стартирам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΎΡ‚ ΠΊΠ°ΠΊΠ²ΠΈ изобраТСния Π΄Π° стартирам, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ… Makefiles, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ псСвдоними Π½Π° дълги Docker ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠœΡ€Π°Π·Π΅Ρ… docker-compose, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π½Π΅ исках Π΄Π° Π½Π°ΡƒΡ‡Π° Π΄Ρ€ΡƒΠ³ инструмСнт Π² Π΄ΠΎΠΊΠ΅Ρ€ СкосистСмата. И docker-compose up Π’ΠΎΠ²Π° ΠΌΠ΅ ΠΏΡ€ΠΈΡ‚Π΅ΡΠ½ΡΠ²Π°ΡˆΠ΅, особСно Π°ΠΊΠΎ всС ΠΏΠ°ΠΊ сС срСщнаха Ρ‚Π°ΠΌ build конструкции, Π° Π½Π΅ Π²Π΅Ρ‡Π΅ сглобСни изобраТСния. Всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ наистина исках, бСшС просто Π΄Π° направя ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈ Π±ΡŠΡ€Π·ΠΎ. Но Π½Π΅ ΠΌΠΎΠΆΠ°Ρ… Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π° ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΠΎΠΊΠ΅Ρ€.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌΠ΅ Π²ΠΈ Ansible

Наскоро (ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Ρ€ΠΈ мСсСца) Ρ€Π°Π±ΠΎΡ‚ΠΈΡ… с Π΅ΠΊΠΈΠΏ Π½Π° DevOps, ΠΏΠΎΡ‡Ρ‚ΠΈ всСки Ρ‡Π»Π΅Π½ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ имашС Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ към Docker. По ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ:

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

На ΡΡŠΡ‰Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° сС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ… с Π΄Ρ€ΡƒΠ³ инструмСнт - Ansible. Π’Π΅Π΄Π½ΡŠΠΆ Ρ‡ΡƒΡ… Π·Π° Ρ‚ΠΎΠ²Π°, Π½ΠΎ Π½Π΅ сС ΠΎΠΏΠΈΡ‚Π°Ρ… Π΄Π° напиша собствСни ΠΊΠ½ΠΈΠ³ΠΈ-ΠΈΠ³Ρ€ΠΈ. И сСга Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ… Π΄Π° си пиша Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΈ Ρ‚ΠΎΠ³Π°Π²Π° визията ΠΌΠΈ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ напълно! Π—Π°Ρ‰ΠΎΡ‚ΠΎ Ρ€Π°Π·Π±Ρ€Π°Ρ…: Ansible ΠΈΠΌΠ° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° стартиранС Π½Π° Π΅Π΄Π½ΠΈ ΠΈ ΡΡŠΡ‰ΠΈ Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΠΈ Π½Π° изобраТСния, ΠΌΡ€Π΅ΠΆΠΈ ΠΈ Ρ‚.Π½., Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π½Π΅ само Π»ΠΎΠΊΠ°Π»Π½ΠΎ, Π½ΠΎ ΠΈ Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ! Радостта ΠΌΠΈ нямашС Π³Ρ€Π°Π½ΠΈΡ†ΠΈ - Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… ΠΠžΠ ΠœΠΠ›Π•Π инструмСнт ΠΈ ΠΈΠ·Ρ…Π²ΡŠΡ€Π»ΠΈΡ… Makefile ΠΈ docker-compose Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅, Ρ‚Π΅ бяха Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ с yaml Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΠΎΠ΄ΡŠΡ‚ бСшС Π½Π°ΠΌΠ°Π»Π΅Π½ Ρ‡Ρ€Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° конструкции ΠΊΠ°Ρ‚ΠΎ loop, whenИ Π΄Ρ€

Docker Π·Π° стартиранС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни, ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ

Наскоро сС Π·Π°ΠΏΠΎΠ·Π½Π°Ρ… с ssh Ρ‚ΡƒΠ½Π΅Π»ΠΈΡ‚Π΅. Оказа сС, Ρ‡Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лСсно Π΄Π° β€žΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅β€œ ΠΏΠΎΡ€Ρ‚Π° Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ към Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚. ΠžΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ»ΠΈ машина Π² ΠΎΠ±Π»Π°ΠΊΠ°, ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° във VirtualBox. Ако моят ΠΊΠΎΠ»Π΅Π³Π° ΠΈΠ»ΠΈ Π°Π· сС Π½ΡƒΠΆΠ΄Π°Π΅ΠΌ ΠΎΡ‚ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° Ρ‚Ρ€Π΅Ρ‚Π° страна), ΠΌΠΎΠΆΠ΅ΠΌ просто Π΄Π° стартирамС ΡΡŠΡ€Π²ΡŠΡ€Π° с Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΠΌ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. ΠŸΡ€Π΅Π½Π°ΡΠΎΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡ€Ρ‚ Π΄Π°Π²Π° ΡΡŠΡ‰ΠΈΡ Π΅Ρ„Π΅ΠΊΡ‚ ΠΊΠ°Ρ‚ΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π° Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Π’Π°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° моя Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ към ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€, ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‰ postgresql:

ssh -L 9000:localhost:5432 [ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½]

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ Ρ€Π΅ΡˆΠ°Π²Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΅ΠΊΠΈΠΏΠ°. Вакъв ΡΡŠΡ€Π²ΡŠΡ€ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ‚ няколко Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ навСднъТ, Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚ postgresql, Π΄Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ Docker ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Ρ‚ΡŠΠ½ΠΊΠΎΡΡ‚ΠΈ. На ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° инсталиратС ΡΡŠΡ‰Π°Ρ‚Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π² самия Docker, Π°ΠΊΠΎ Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° инсталиратС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° вСрсия. Всичко, ΠΎΡ‚ ΠΊΠΎΠ΅Ρ‚ΠΎ сС нуТдаят Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅, Π΅ Π΄Π° прСдоставят ssh Π΄ΠΎΡΡ‚ΡŠΠΏ!

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

Π—Π° щастиС, AWS, GoogleCloud ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ Π²ΠΈ Π΄Π°Π²Π°Ρ‚ Π΅Π΄Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅! Π’Π΅ са Π΅Π²Ρ‚ΠΈΠ½ΠΈ, Π°ΠΊΠΎ Π³ΠΈ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π΅ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚. Π’ΠΈΠ½Π°Π³ΠΈ съм сС Ρ‡ΡƒΠ΄Π΅Π» Π·Π°Ρ‰ΠΎ Ρ‰Π΅ ΠΌΠΈ трябва ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ ΠΊΠ°Ρ‚ΠΎ gcloud, ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°, Ρ‡Π΅ Π³ΠΈ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ….

ΠšΠ°Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΡΡŠΡ‰Π°Ρ‚Π° Alpine, която сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π•, ΠΈΠ»ΠΈ някои Π΄Ρ€ΡƒΠ³ΠΈ Π»Π΅ΠΊΠΈ дистрибуции, ΠΊΠΎΠΈΡ‚ΠΎ Π΄Π° направят Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ трябва Π΄Π° стартиратС Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ инфраструктурни Скстри Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡Π΅Π½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΈΠ»ΠΈ във Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° кутия. НС ΠΌΠΈ трябва Π΄ΠΎΠΊΠ΅Ρ€ Π·Π° Ρ‚Π΅Π·ΠΈ Ρ†Π΅Π»ΠΈ.

Малко Π·Π° Π΄ΠΎΠΊΠ΅Ρ€ изобраТСнията ΠΈ разпространСниСто

Π’Π΅Ρ‡Π΅ писах Бтатия Π² ΠΊΠΎΠ΅Ρ‚ΠΎ исках Π΄Π° ΠΏΡ€Π΅Π΄Π°ΠΌ, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ изобраТСния Π½Π΅ прСдоставя Π½ΠΈΠΊΠ°ΠΊΠ²Π° гаранция. Π”ΠΎΠΊΠ΅Ρ€ изобраТСнията са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ само Π·Π° създаванС Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Ако Π½Π°Π΄Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅ Π΄ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ³Π°Π²Π° Π½Π°Π΄Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚Π΅, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ само тях.

Π’ΠΈΠΆΠ΄Π°Π»ΠΈ Π»ΠΈ стС някъдС, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° софтуСр прСнасят своитС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ само Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅?
Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ са Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°; Ρ‚Π΅ просто сС добавят към Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ наслСдСно ΠΎΡ‚ ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. Π§ΡƒΠ΄ΠΈΠ»ΠΈ Π»ΠΈ стС сС Π·Π°Ρ‰ΠΎ ΠΈΠΌΠ° Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ изобраТСния Π² dockerhub? Π’ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ nginx, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅ 100500 XNUMX изобраТСния ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ…ΠΎΡ€Π°. Π’Π΅Π·ΠΈ Ρ…ΠΎΡ€Π° Π½Π΅ са Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΠ»ΠΈ самия nginx, Ρ‚Π΅ просто са Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π΅Π½ nginx към своя Π΄ΠΎΠΊΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π· ΠΈ са Π³ΠΎ ΠΏΠΎΠ΄ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ със собствСни ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π·Π° удобство ΠΏΡ€ΠΈ стартиранС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

ΠšΠ°Ρ‚ΠΎ цяло ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π΄Π° Π³ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚Π΅ Π² tgz, Π°ΠΊΠΎ някой трябва Π΄Π° Π³ΠΎ стартира Π² docker, Ρ‚ΠΎΠ³Π°Π²Π° Π³ΠΎ оставСтС Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ tgz към Dockerfile, Π΄Π° наслСди ΠΎΡ‚ ΠΆΠ΅Π»Π°Π½Π°Ρ‚Π° срСда ΠΈ Π΄Π° създадС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΈΡ„Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ промСнят самото ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² tgz. ВсСки, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ създадС Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‰Π΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ tgz ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ трябва Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Π΄ΠΎΠΊΠ΅Ρ€ Ρ‚ΡƒΠΊ

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка: нямам Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ Π΄ΠΎΠΊΠ΅Ρ€ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€, Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ някакъв S3 ΠΈΠ»ΠΈ просто Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΠ°Ρ‚ΠΎ google drive/dropbox

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

Всички ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π² ΠΊΠΎΠΈΡ‚ΠΎ съм Ρ€Π°Π±ΠΎΡ‚ΠΈΠ», са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ. ОбикновСно са Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅Π»Π½ΠΈ стоки. ВоСст, Ρ‚Π΅ ΠΈΠΌΠ°Ρ‚ Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΅Π΄ΠΈΠ½ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅Π½ стСк (Π΅, ΠΌΠΎΠΆΠ΅ Π±ΠΈ няколко ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅).

Π’Π΅Π·ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΎΠΊΠ΅Ρ€ Π½Π° своитС ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС изпълнява CI ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚. Π’ΡŠΠΏΡ€ΠΎΡ: Π—Π°Ρ‰ΠΎ трябва Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π½Π° Π²Π°ΡˆΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ? Π—Π°Ρ‰ΠΎ просто Π½Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²ΠΈΡ‚Π΅ срСда Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ansible playbook, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ инсталира Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ вСрсии Π½Π° nodejs, php, jdk, Ρ‰Π΅ ΠΊΠΎΠΏΠΈΡ€Π° ssh ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΈ Ρ‚.Π½. Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ?

Π‘Π΅Π³Π° Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌ, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π΅ прострСлванС Π² ΠΊΡ€Π°ΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ΡŠΡ‚ Π½Π΅ носи ΠΏΠ΅Ρ‡Π°Π»Π±Π° с изолацията си. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ срСщнах с CI Π² Π΄ΠΎΠΊΠ΅Ρ€:

  • ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ ΠΎΡ‚ Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅. трябва Π΄Π° ΠΏΠΎΡ‚ΡŠΡ€ΡΠΈΡ‚Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ свой собствСн Π΄ΠΎΠΊΠ΅Ρ€ Ρ„Π°ΠΉΠ».
  • 90%, Ρ‡Π΅ трябва Π΄Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΈΡ‚Π΅ някои ssh ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, сСкрСтни Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ искатС Π΄Π° записватС Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.
  • ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΡŠΡ‚ сС създава ΠΈ ΡƒΠΌΠΈΡ€Π°, всички кСшовС сС губят Π·Π°Π΅Π΄Π½ΠΎ с Π½Π΅Π³ΠΎ. слСдващата компилация Ρ‰Π΅ ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ всички зависимости Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΡ‚Π½Π΅ΠΌΠ° Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΅ Π½Π΅Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ, Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π΅ ΠΏΠ°Ρ€ΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π΅ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π² Π΄ΠΎΠΊΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ (някога бях Ρ‚Π°ΠΊΡŠΠ² Ρ„Π΅Π½, наистина, съТалявам сСбС си Π² ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ xD). Π’ java Π΅ възмоТно Π΄Π° ΠΈΠΌΠ°Ρ‚Π΅ няколко вСрсии ΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Ρ‚Π°Π·ΠΈ, ΠΎΡ‚ която сС Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚Π΅ сСга. Π’ nodejs Π΅ ΡΡŠΡ‰ΠΎΡ‚ΠΎ, ΠΈΠΌΠ° nvm.

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ

Вярвам, Ρ‡Π΅ docker Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠΎΡ‰Π΅Π½ ΠΈ гъвкав инструмСнт, Ρ‚ΠΎΠ²Π° Π΅ нСговият Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΠΊ (Π·Π²ΡƒΡ‡ΠΈ странно, Π΄Π°). Π‘ Π½Π΅Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ‰ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ лСсно Π΄Π° сС пристрастят към Π½Π΅Π³ΠΎ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ трябва ΠΈ Π½Π΅ трябва. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ пускат своитС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, някои ΠΎΡ‚ своитС срСди, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ всичко ΠΏΠ»Π°Π²Π½ΠΎ сС Π²Π»ΠΈΠ²Π° Π² CI ΠΈ производството. Π•ΠΊΠΈΠΏΡŠΡ‚ Π½Π° DevOps пишС някакъв Π²ΠΈΠ΄ ΠΊΠΎΠ΄ Π·Π° стартиранС Π½Π° Ρ‚Π΅Π·ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ.

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠΊΠ΅Ρ€ само Π½Π° Π½Π°ΠΉ-Π½ΠΎΠ²ΠΎΡ‚ΠΎ Π΅Ρ‚Π°ΠΏ ΠΎΡ‚ вашия Ρ€Π°Π±ΠΎΡ‚Π΅Π½ процСс, Π½Π΅ Π³ΠΎ Π²Π»Π°Ρ‡Π΅Ρ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ. Π’ΠΎΠ²Π° няма Π΄Π° Ρ€Π΅ΡˆΠΈ бизнСс ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π²ΠΈ. Π’ΠΎΠΉ само Ρ‰Π΅ прСмСсти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π° Π”Π Π£Π“Πž Π½ΠΈΠ²ΠΎ ΠΈ Ρ‰Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ свои Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π²ΠΈΠ΅ Ρ‰Π΅ ΡΠ²ΡŠΡ€ΡˆΠΈΡ‚Π΅ Π΄Π²ΠΎΠΉΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΠΊΠ΅Ρ€: Π‘Ρ‚ΠΈΠ³Π½Π°Ρ… Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄Π°, Ρ‡Π΅ Π΄ΠΎΠΊΠ΅Ρ€ΡŠΡ‚ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡŠΡ€ Π² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π΄Π΅Π½ процСс, Π½ΠΎ Π½Π΅ ΠΈ Π² ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° основна функционалност

Ако всС ΠΏΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π΄ΠΎΠΊΠ΅Ρ€, Ρ‚ΠΎΠ³Π°Π²Π°:

  • Π±ΡŠΠ΄Π΅Ρ‚Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΈ
  • Π½Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΎΠΊΠ΅Ρ€
  • Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΌΡƒ Π½Π° Π΅Π΄Π½ΠΎ място, Π½Π΅ Π³ΠΎ разпространявайтС във всички Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° Dockefile ΠΈ docker-compose

PS:

Благодаря Π²ΠΈ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅Ρ‚ΠΎ, ТСлая Π²ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ във Π²Π°ΡˆΠΈΡ‚Π΅ Π΄Π΅Π»Π° ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ Π΄Π½ΠΈ!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€