Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Docker слики Π²ΠΎ werf ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΎΠ±ΠΈΡ‡Π½Π° Dockerfile

ΠŸΠΎΠ΄ΠΎΠ±Ρ€ΠΎ Π΄ΠΎΡ†Π½Π° ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ никогаш. Или ΠΊΠ°ΠΊΠΎ Π·Π° ΠΌΠ°Π»ΠΊΡƒ ќС Π½Π°ΠΏΡ€Π°Π²ΠΈΠ²ΠΌΠ΅ сСриозна Π³Ρ€Π΅ΡˆΠΊΠ° со Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π½Π΅ΠΌΠ°Π²ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΠΎΠ±ΠΈΡ‡Π½ΠΈΡ‚Π΅ Dockerfiles Π·Π° Π΄Π° создавамС слики ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Docker слики Π²ΠΎ werf ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΎΠ±ΠΈΡ‡Π½Π° Dockerfile

ЌС Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°ΠΌΠ΅ Π·Π° Π²Π΅Ρ€Ρ„ β€” GitOps Π°Π»Π°Ρ‚ΠΊΠ° која сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° со кој Π±ΠΈΠ»ΠΎ CI/CD систСм ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со Ρ†Π΅Π»ΠΈΠΎΡ‚ ΠΆΠΈΠ²ΠΎΡ‚Π΅Π½ циклус Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π°Ρ˜ΡœΠΈ:

  • собира ΠΈ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π° слики,
  • распорСди Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΠΎ Kubernetes,
  • ΠΈΠ·Π±Ρ€ΠΈΡˆΠ΅Ρ‚Π΅ Π³ΠΈ нСискористСнитС слики ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ.


Π€ΠΈΠ»ΠΎΠ·ΠΎΡ„ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ Π΄Π° сС собСрат Π°Π»Π°Ρ‚ΠΊΠΈ Π½Π° ниско Π½ΠΈΠ²ΠΎ Π²ΠΎ СдинствСн ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ систСм кој ΠΈΠΌ Π΄Π°Π²Π° Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° DevOps ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π°Π΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅. Ако Π΅ ΠΌΠΎΠΆΠ½ΠΎ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС користат постоСчкитС ΠΊΠΎΠΌΡƒΠ½Π°Π»Π½ΠΈ услуги (ΠΊΠ°ΠΊΠΎ Helm ΠΈ Docker). Ако Π½Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° создадСмС ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠΈΠΌΠ΅ сС ΡˆΡ‚ΠΎ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π·Π° ΠΎΠ²Π°.

Позадина: ваш сопствСн ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΎΠ½Π΅Ρ€ Π½Π° слики

Π•Π²Π΅ ΡˆΡ‚ΠΎ сС случи со собирачот Π½Π° слики Π²ΠΎ werf: Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ΠΎΡ‚ΠΎ Dockerfile Π½Π΅ Π½ΠΈ бСшС Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ. Ако Π½Π°Π±Ρ€Π·ΠΈΠ½Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅Ρ‚Π΅ Π²ΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚, овој ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ сС појави вСќС Π²ΠΎ ΠΏΡ€Π²ΠΈΡ‚Π΅ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° werf (Ρ‚ΠΎΠ³Π°Ρˆ сè ΡƒΡˆΡ‚Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΊΠ°ΠΊΠΎ Π΄Π°ΠΏ).

Π”ΠΎΠ΄Π΅ΠΊΠ° создававмС Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΠΎ сликитС Π½Π° Docker, Π±Ρ€Π·ΠΎ сфативмС Π΄Π΅ΠΊΠ° Dockerfile Π½Π΅ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° нас Π·Π° Π½Π΅ΠΊΠΎΠΈ ΠΌΠ½ΠΎΠ³Ρƒ спСцифични Π·Π°Π΄Π°Ρ‡ΠΈ:

  1. ΠŸΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄Π°Ρ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΈ ΠΌΠ°Π»ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ спорСд слСдната стандардна шСма:
    • ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρ‚Π΅ зависности Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½ΠΈΠ· Ρ†Π΅Π»ΠΈΠΎΡ‚ систСм,
    • ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° зависност ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ,
    • собира срСдства,
    • ΠΈ ΡˆΡ‚ΠΎ Π΅ најваТно, Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° сликата Π±Ρ€Π·ΠΎ ΠΈ Сфикасно.
  2. Кога сС ΠΏΡ€Π°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ, Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Π»ΠΎΡ‚ ΠΌΠΎΡ€Π° Π±Ρ€Π·ΠΎ Π΄Π° создадС Π½ΠΎΠ² слој со ΠΏΡ€ΠΈΠΌΠ΅Π½Π° Π½Π° Π·Π°ΠΊΡ€ΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ.
  3. Ако ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ сС ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ Π΅ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ соодвСтната зависна Ρ„Π°Π·Π°.

ДСнСс Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΎΠ½Π΅Ρ€ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π΄Ρ€ΡƒΠ³ΠΈ моТности, Π½ΠΎ Ρ‚ΠΎΠ° Π±Π΅Π° ΠΏΡ€Π²ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΆΠ΅Π»Π±ΠΈ ΠΈ ΠΏΠΎΡ€ΠΈΠ²ΠΈ.

Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, Π±Π΅Π· Π΄Π° размислимС Π΄Π²Π°ΠΏΠ°Ρ‚ΠΈ, сС Π²ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΠΌΠ΅ со програмскиот јазик ΡˆΡ‚ΠΎ Π³ΠΎ користСвмС (Π’ΠΈΠ΄ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρƒ) ΠΈ Ρ‚Ρ€Π³Π½Π° Π½Π° ΠΏΠ°Ρ‚ΠΎΡ‚ Π·Π° ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ сопствСн DSL! Π’ΠΎ согласност со Ρ†Π΅Π»ΠΈΡ‚Π΅, Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π΄Π° сС опишС процСсот Π½Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ Ρ„Π°Π·ΠΈ ΠΈ Π΄Π° сС ΠΎΠ΄Ρ€Π΅Π΄Π°Ρ‚ зависноститС Π½Π° ΠΎΠ²ΠΈΠ΅ Ρ„Π°Π·ΠΈ ΠΎΠ΄ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅. И Π³ΠΎ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΠΈ сопствСн ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΎΠ½Π΅Ρ€, ΡˆΡ‚ΠΎ Π³ΠΎ ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€ΠΈ DSL Π²ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Π° Ρ†Π΅Π» - склопСна слика. На ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ DSL бСшС Π²ΠΎ Π ΡƒΠ±ΠΈ, Π½ΠΎ ΠΊΠ°ΠΊΠΎ Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π° Π²ΠΎ Π“ΠΎΠ»Π°Π½Π³ β€” ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ ΠΏΠΎΡ‡Π½Π° Π΄Π° сС ΠΎΠΏΠΈΡˆΡƒΠ²Π° Π²ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° YAML.

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Docker слики Π²ΠΎ werf ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΎΠ±ΠΈΡ‡Π½Π° Dockerfile
Π‘Ρ‚Π°Ρ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π·Π° dapp Π²ΠΎ Π ΡƒΠ±ΠΈ

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Docker слики Π²ΠΎ werf ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΎΠ±ΠΈΡ‡Π½Π° Dockerfile
Π’Π΅ΠΊΠΎΠ²Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π·Π° werf Π½Π° YAML

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΡ‚ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ΠΎΡ‚ исто Ρ‚Π°ΠΊΠ° сС ΠΌΠ΅Π½ΡƒΠ²Π°ΡˆΠ΅ со Ρ‚Π΅ΠΊΠΎΡ‚ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ. ΠžΡ‚ΠΏΡ€Π²ΠΈΠ½, Сдноставно Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π²ΠΌΠ΅ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ Dockerfile Π²ΠΎ Π»Π΅Ρ‚ ΠΎΠ΄ Π½Π°ΡˆΠ°Ρ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°, Π° ΠΏΠΎΡ‚ΠΎΠ° ΠΏΠΎΡ‡Π½Π°Π²ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΠΌΠ΅ упатствата Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΠΌΠ΅.

NB: Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΎΠ½Π΅Ρ€, кој Ρ€Π°Π±ΠΎΡ‚ΠΈ со сопствСна ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° (Π²ΠΎ YAML) ΠΈ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° Stapel, вСќС сС Ρ€Π°Π·Π²ΠΈ Π²ΠΎ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ моќна Π°Π»Π°Ρ‚ΠΊΠ°. НСговиот Π΄Π΅Ρ‚Π°Π»Π΅Π½ опис заслуТува посСбни написи, Π° основнитС Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Ρ˜Π΄Π°Ρ‚ Π²ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°.

БвСсност Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚

Но, сфативмС, ΠΈ Ρ‚ΠΎΠ° Π½Π΅ вСднаш, Π΄Π΅ΠΊΠ° Π½Π°ΠΏΡ€Π°Π²ΠΈΠ²ΠΌΠ΅ Π΅Π΄Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°: Π½Π΅ ја Π΄ΠΎΠ΄Π°Π΄ΠΎΠ²ΠΌΠ΅ способноста Π³Ρ€Π°Π΄Π΅ΡšΠ΅ слики ΠΏΡ€Π΅ΠΊΡƒ стандардСн Dockerfile ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π³ΠΈ Π²ΠΎ истата инфраструктура Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠ΄ ΠΊΡ€Π°Ρ˜ Π΄ΠΎ ΠΊΡ€Π°Ρ˜ (Ρ‚.Π΅. ΡΠΎΠ±ΠΈΡ€Π°Ρ˜Ρ‚Π΅ слики, распорСдСтС Π³ΠΈ ΠΈ исчистСтС Π³ΠΈ). Како Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Ρ ΠΈ Π΄Π° Π½Π΅ сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° Dockerfile, Ρ‚.Π΅. стандардСн Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° слики Π·Π° ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ?..

НамСсто Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅, Π½ΠΈΠ΅ Π½ΡƒΠ΄ΠΈΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π¨Ρ‚ΠΎ Π°ΠΊΠΎ вСќС ΠΈΠΌΠ°Ρ‚Π΅ Dockerfile (ΠΈΠ»ΠΈ Π·Π±ΠΈΡ€ Π½Π° Dockerfiles) ΠΈ сакатС Π΄Π° користитС werf?

NB: ΠŸΠ°Ρ‚Π΅ΠΌ, Π·ΠΎΡˆΡ‚ΠΎ Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ Π±ΠΈ сакалС Π΄Π° користитС werf? Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ карактСристики сС свСдуваат Π½Π° слСдново:

  • цСлосСн циклус Π½Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Ρ‡ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° слики;
  • моТност Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ слики одСднаш ΠΎΠ΄ Π΅Π΄Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°;
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ процСс Π½Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π·Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ΠΈ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ со Helm.

ΠŸΠΎΡ†Π΅Π»ΠΎΡΠ΅Π½ список ΠΎΠ΄ Π½ΠΈΠ² ΠΌΠΎΠΆΠ΅ Π΄Π° сС најдС Π½Π° страница Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚.

Π—Π½Π°Ρ‡ΠΈ, Π°ΠΊΠΎ ΠΏΠΎΡ€Π°Π½ΠΎ Π±ΠΈ ΠΏΠΎΠ½ΡƒΠ΄ΠΈΠ»Π΅ Π΄Π° Π³ΠΎ ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Dockerfile Π²ΠΎ Π½Π°ΡˆΠ°Ρ‚Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°, сСга со задоволство ќС ΠΊΠ°ΠΆΠ΅ΠΌΠ΅: β€žΠ”ΠΎΠ·Π²ΠΎΠ»Π΅Ρ‚Π΅ ΠΌΡƒ Π΄Π° Π³ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ Π²Π°ΡˆΠΈΡ‚Π΅ Dockerfiles!β€œ

Како Π΄Π° сС користи?

ЦСлосната ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΎΠ²Π°Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° сС појави Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ werf v1.0.3-beta.1. ΠžΠΏΡˆΡ‚ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π΅ СдноставСн: корисникот ја ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° ΠΏΠ°Ρ‚Π΅ΠΊΠ°Ρ‚Π° Π΄ΠΎ постоСчката Dockerfile Π²ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° werf, Π° ΠΏΠΎΡ‚ΠΎΠ° ја ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf build... ΠΈ Ρ‚ΠΎΠ° Π΅ Ρ‚ΠΎΠ° - werf ќС ја состави сликата. АјдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ апстрактСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

АјдС Π΄Π° Π³ΠΎ објавимС слСдниот Dockerfile Π²ΠΎ ΠΊΠΎΡ€Π΅Π½ΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚:

FROM ubuntu:18.04
RUN echo Building ...

И ќС објавимС werf.yamlкој Π³ΠΎ користи ΠΎΠ²Π° Dockerfile:

configVersion: 1
project: dockerfile-example
---
image: ~
dockerfile: ./Dockerfile

Π‘ΠΈΡ‚Π΅! Π›Π΅Π²ΠΎ Ρ‚Ρ€Ρ‡Π° werf build:

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Docker слики Π²ΠΎ werf ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ ΠΎΠ±ΠΈΡ‡Π½Π° Dockerfile

ΠŸΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΈΠ·Ρ˜Π°Π²ΠΈΡ‚Π΅ слСдново werf.yaml Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ слики ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Dockerfiles одСднаш:

configVersion: 1
project: dockerfile-example
---
image: backend
dockerfile: ./dockerfiles/Dockerfile-backend
---
image: frontend
dockerfile: ./dockerfiles/Dockerfile-frontend

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° ΠΈ ΠΏΡ€Π΅Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π·Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°, ΠΊΠ°ΠΊΠΎ Π½Π° ΠΏΡ€ --build-arg ΠΈ --add-host - ΠΏΡ€Π΅ΠΊΡƒ werf config. ЦСлосСн опис Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° сликата Π½Π° Dockerfile Π΅ достапСн Π½Π° страници Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ.

Како Ρ‚ΠΎΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°?

Π—Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСсот Π½Π° Π³Ρ€Π°Π΄Π΅ΡšΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° стандардниот кСш Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈ слоСви Π²ΠΎ Docker. Π‘Π΅ΠΏΠ°ΠΊ, ΠΎΠ½Π° ΡˆΡ‚ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΅ ΠΈ Ρ‚ΠΎΡ˜ Π²Π΅Ρ€Ρ„ ја ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Dockerfile Π²ΠΎ ΡΠ²ΠΎΡ˜Π°Ρ‚Π° инфраструктура. Π¨Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ Ρ‚ΠΎΠ°?

  1. БСкоја слика ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½Π° ΠΎΠ΄ Dockerfile сС состои ΠΎΠ΄ Π΅Π΄Π½Π° Ρ„Π°Π·Π° Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° dockerfile (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅ повСќС Π·Π° Ρ‚ΠΎΠ° ΠΊΠΎΠΈ Ρ„Π°Π·ΠΈ сС Π²ΠΎ Π²Π΅Ρ€Ρ„ Ρ‚ΡƒΠΊΠ°).
  2. Π—Π° сцСната dockerfile werf прСсмСтува потпис кој зависи ΠΎΠ΄ содрТината Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Dockerfile. Кога ќС сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Dockerfile, сС ΠΌΠ΅Π½ΡƒΠ²Π° потписот Π½Π° сцСната dockerfile ΠΈ werf ΠΈΠ½ΠΈΡ†ΠΈΡ€Π° ΠΎΠ±Π½ΠΎΠ²Π° Π½Π° ΠΎΠ²Π°Π° Ρ„Π°Π·Π° со Π½ΠΎΠ²Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Dockerfile. Ако потписот Π½Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ werf ја Π·Π΅ΠΌΠ° сликата ΠΎΠ΄ ΠΊΠ΅ΡˆΠΎΡ‚ (повСќС Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° потписи Π²ΠΎ Π²Π΅Ρ€Ρ„ Π±Π΅Π° опишани Π²ΠΎ овој ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜).
  3. Π‘Π»Π΅Π΄Π½ΠΎ, собранитС слики ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ±Ρ˜Π°Π²Π°Ρ‚ со ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° werf publish (Или werf build-and-publish) ΠΈ користСтС Π³ΠΎ Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ. ΠžΠ±Ρ˜Π°Π²Π΅Π½ΠΈΡ‚Π΅ слики Π²ΠΎ Docker Registry ќС сС чистат со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° стандардни Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° Ρ‡ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° werf, Ρ‚.Π΅. Π‘Ρ‚Π°Ρ€ΠΈΡ‚Π΅ слики (постари ΠΎΠ΄ N Π΄Π΅Π½Π°), сликитС ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со нСпостоСчки Π³Ρ€Π°Π½ΠΊΠΈ Π½Π° Git ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° автоматски ќС сС чистат.

ПовСќС Π΄Π΅Ρ‚Π°Π»ΠΈ Π·Π° Ρ‚ΠΎΡ‡ΠΊΠΈΡ‚Π΅ опишани ΠΎΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Ρ˜Π΄Π΅Ρ‚Π΅ Π²ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°:

Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠΈ ΠΈ ΠΌΠ΅Ρ€ΠΊΠΈ Π½Π° прСтпазливост

1. ΠΠ°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΠΎΡ‚ URL Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ Π²ΠΎ ADD

Π’ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ΠΎ Π΄Π° сС користи Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ URL Π²ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ADD. Werf Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΡ€Π° ΠΎΠ±Π½ΠΎΠ²Π° ΠΊΠΎΠ³Π° ќС сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ рСсурсот Π½Π° Π½Π°Π²Π΅Π΄Π΅Π½Π°Ρ‚Π° URL адрСса. ΠŸΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° ја Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠ²Π°Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° наскоро.

2. НС ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ .git Π½Π° сликата

ΠžΠΏΡˆΡ‚ΠΎ Π·Π΅ΠΌΠ΅Π½ΠΎ, додавањС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌ .git Π½Π° сликата - Π·Π»ΠΎΠ±Π½Π° лоша ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΈ Π΅Π²Π΅ Π·ΠΎΡˆΡ‚ΠΎ:

  1. Ако .git останува Π²ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½Π°Ρ‚Π° слика, ΠΎΠ²Π° Π³ΠΈ Π½Π°Ρ€ΡƒΡˆΡƒΠ²Π° ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΡ‚Π΅ ΠΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° со 12 Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ: Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Π°Ρ‚Π° слика ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ²Ρ€Π·Π°Π½Π° со Π΅Π΄Π½ΠΎ ΠΎΠ±Π²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅, Ρ‚ΠΎΠ° Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ git checkout ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅.
  2. .git ја Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° сликата (ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΏΠΎΡ€Π°Π΄ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ‚ ΡˆΡ‚ΠΎ Π½Π° Π½Π΅Π³ΠΎ Сднаш Π±Π΅Π° Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠ° ΠΈΠ·Π±Ρ€ΠΈΡˆΠ°Π½ΠΈ). Π“ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΎΡ‚ΠΎ стСбло ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΎ само со ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° обврска Π½Π΅ΠΌΠ° Π΄Π° зависи ΠΎΠ΄ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π²ΠΎ Git. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, додавањС ΠΈ послСдоватСлно ΠΎΡ‚ΡΡ‚Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅ .git ΠΎΠ΄ ΠΊΠΎΠ½Π΅Ρ‡Π½Π°Ρ‚Π° слика Π½Π΅ΠΌΠ° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ: сликата сСпак ќС Π΄ΠΎΠ±ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ слој - Π²Π°ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ΠΈ Docker.
  3. Π”ΠΎΠΊΠ΅Ρ€ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ½ΠΈΡ†ΠΈΡ€Π° Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° Ρ€Π΅ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π°, Π΄ΡƒΡ€ΠΈ ΠΈ Π°ΠΊΠΎ сС Π³Ρ€Π°Π΄ΠΈ истото Π·Π°Π»ΠΎΠΆΠ±Π°, Π½ΠΎ ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ Π΄Ρ€Π²Ρ˜Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GitLab создава посСбни ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ Π²ΠΎ /home/gitlab-runner/builds/HASH/[0-N]/yourproject ΠΊΠΎΠ³Π° Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ ќС сС Π΄ΠΎΠ»ΠΆΠΈ Π½Π° Ρ„Π°ΠΊΡ‚ΠΎΡ‚ Π΄Π΅ΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ .git Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½ΠΈ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° истото ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅, Π΄ΡƒΡ€ΠΈ ΠΈ Π°ΠΊΠΎ Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ ист commit.

ΠŸΠΎΡΠ»Π΅Π΄Π½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ°, исто Ρ‚Π°ΠΊΠ°, ΠΈΠΌΠ° послСдици ΠΏΡ€ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° Π²Π΅Ρ€Ρ„. Werf Π±Π°Ρ€Π° Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ кСш Π΄Π° Π±ΠΈΠ΄Π΅ присутСн ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ (Π½Π° ΠΏΡ€. werf deploy). Кога сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°Π°Ρ‚ ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, werf прСсмСтува потписи Π½Π° сцСната Π·Π° сликитС Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ Π²ΠΎ werf.yaml, ΠΈ Ρ‚ΠΈΠ΅ ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Π²ΠΎ ΠΊΠ΅ΡˆΠΎΡ‚ Π½Π° собраниСто - Π²ΠΎ спротивно ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Ако сцСнскиот потпис зависи ΠΎΠ΄ содрТината .git, Ρ‚ΠΎΠ³Π°Ρˆ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ кСш ΡˆΡ‚ΠΎ Π΅ нСстабилСн Π·Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΈΡ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ werf Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° прости Ρ‚Π°ΠΊΠΎΠ² ΠΏΡ€Π΅Π²ΠΈΠ΄ (Π·Π° повСќС Π΄Π΅Ρ‚Π°Π»ΠΈ, Π²ΠΈΠ΄ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°).

Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, додавајќи само ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€Π΅ΠΊΡƒ инструкциитС ADD Π²ΠΎ сСкој ΡΠ»ΡƒΡ‡Π°Ρ˜ ја Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° Сфикасноста ΠΈ Π²Π΅Ρ€ΠΎΠ΄ΠΎΡΡ‚ΠΎΡ˜Π½ΠΎΡΡ‚Π° Π½Π° Π½Π°ΠΏΠΈΡˆΠ°Π½ΠΎΡ‚ΠΎ Dockerfile, Π° исто Ρ‚Π°ΠΊΠ° ја ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π° стабилноста Π½Π° ΠΊΠ΅ΡˆΠΎΡ‚ собран Π·Π° ΠΎΠ²Π° Dockerfile, Π΄ΠΎ ΠΈΡ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Git.

Π’ΠΊΡƒΠΏΠ½ΠΎ

ΠΠ°ΡˆΠΈΠΎΡ‚ ΠΏΠΎΡ‡Π΅Ρ‚Π΅Π½ ΠΏΠ°Ρ‚ Π΄ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ сопствСн Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Π» Π·Π° спСцифични ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈ бСшС Ρ‚Π΅ΠΆΠΎΠΊ, искрСн ΠΈ јасСн: намСсто Π΄Π° користимС ΠΏΠ°Ρ‚Π΅Ρ€ΠΈΡ†ΠΈ Π½Π°Π΄ стандардниот Dockerfile, Π³ΠΎ напишавмС Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ со ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½Π° синтакса. И ΠΎΠ²Π° имашС свои прСдности: ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΎΠ½Π΅Ρ€ΠΎΡ‚ Stapel ΡΠΎΠ²Ρ€ΡˆΠ΅Π½ΠΎ сС справува со ΡΠ²ΠΎΡ˜Π°Ρ‚Π° Π·Π°Π΄Π°Ρ‡Π°.

Π‘Π΅ΠΏΠ°ΠΊ, Π²ΠΎ процСсот Π½Π° ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½Π°ΡˆΠΈΠΎΡ‚ сопствСн Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Π», ја ΠΈΠ·Π³ΡƒΠ±ΠΈΠ²ΠΌΠ΅ ΠΎΠ΄ Π²ΠΈΠ΄ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° постоСчкитС Dockerfiles. Овој пропуст сСга Π΅ ΠΏΠΎΠΏΡ€Π°Π²Π΅Π½ ΠΈ Π²ΠΎ ΠΈΠ΄Π½ΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° ја Ρ€Π°Π·Π²ΠΈΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°Ρ‚Π° Π·Π° Dockerfile Π·Π°Π΅Π΄Π½ΠΎ со Π½Π°ΡˆΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Π» Π½Π° Stapel Π·Π° дистрибуирани изданија ΠΈ Π·Π° Π³Ρ€Π°Π΄Π±ΠΈ ΡˆΡ‚ΠΎ користат Kubernetes (Ρ‚.Π΅. Π³Ρ€Π°Π΄ΠΈ Π½Π° Ρ‚Ρ€ΠΊΠ°Ρ‡ΠΈ Π²ΠΎ Kubernetes, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС ΠΏΡ€Π°Π²ΠΈ Π²ΠΎ kaniko).

Π—Π½Π°Ρ‡ΠΈ, Π°ΠΊΠΎ одСднаш Π²ΠΈ Π»Π΅ΠΆΠ°Ρ‚ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Dockerfiles Π½Π°ΠΎΠΊΠΎΠ»Ρƒ... ΠΎΠ±ΠΈΠ΄Π΅Ρ‚Π΅ сС Π²Π΅Ρ€Ρ„!

PS Бписок Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π°

ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ˜Ρ‚Π΅ ΠΈ Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ Π±Π»ΠΎΠ³:werf - Π½Π°ΡˆΠ°Ρ‚Π° Π°Π»Π°Ρ‚ΠΊΠ° Π·Π° CI / CD Π²ΠΎ Kubernetes (ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜)".

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

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