ΠΠΎΠ΄ΠΎΠ±ΡΠΎ Π΄ΠΎΡΠ½Π° ΠΎΡΠΊΠΎΠ»ΠΊΡ Π½ΠΈΠΊΠΎΠ³Π°Ρ. ΠΠ»ΠΈ ΠΊΠ°ΠΊΠΎ Π·Π° ΠΌΠ°Π»ΠΊΡ ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ ΡΠ΅ΡΠΈΠΎΠ·Π½Π° Π³ΡΠ΅ΡΠΊΠ° ΡΠΎ ΡΠΎΠ° ΡΡΠΎ Π½Π΅ΠΌΠ°Π²ΠΌΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΎΠ±ΠΈΡΠ½ΠΈΡΠ΅ Dockerfiles Π·Π° Π΄Π° ΡΠΎΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ΅ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΠΌΠ΅ Π·Π°
- ΡΠΎΠ±ΠΈΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π²ΡΠ²Π° ΡΠ»ΠΈΠΊΠΈ,
- ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π²ΠΎ Kubernetes,
- ΠΈΠ·Π±ΡΠΈΡΠ΅ΡΠ΅ Π³ΠΈ Π½Π΅ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ.
Π€ΠΈΠ»ΠΎΠ·ΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ Π΅ Π΄Π° ΡΠ΅ ΡΠΎΠ±Π΅ΡΠ°Ρ Π°Π»Π°ΡΠΊΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ Π²ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ ΡΠΈΡΡΠ΅ΠΌ ΠΊΠΎΡ ΠΈΠΌ Π΄Π°Π²Π° Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΈΡΠ΅ Π½Π° DevOps ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π°Π΄ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅. ΠΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅ ΠΊΠΎΠΌΡΠ½Π°Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ (ΠΊΠ°ΠΊΠΎ Helm ΠΈ Docker). ΠΠΊΠΎ Π½Π΅ΠΌΠ° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΠΆΠΈΠΌΠ΅ ΡΠ΅ ΡΡΠΎ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π·Π° ΠΎΠ²Π°.
ΠΠΎΠ·Π°Π΄ΠΈΠ½Π°: Π²Π°Ρ ΡΠΎΠΏΡΡΠ²Π΅Π½ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΎΠ½Π΅Ρ Π½Π° ΡΠ»ΠΈΠΊΠΈ
ΠΠ²Π΅ ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΠΈ ΡΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΠΎΡ Π½Π° ΡΠ»ΠΈΠΊΠΈ Π²ΠΎ werf: Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΎΡΠΎ Dockerfile Π½Π΅ Π½ΠΈ Π±Π΅ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ. ΠΠΊΠΎ Π½Π°Π±ΡΠ·ΠΈΠ½Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π²ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ, ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ Π²Π΅ΡΠ΅ Π²ΠΎ ΠΏΡΠ²ΠΈΡΠ΅ Π²Π΅ΡΠ·ΠΈΠΈ Π½Π° werf (ΡΠΎΠ³Π°Ρ ΡΓ¨ ΡΡΡΠ΅
ΠΠΎΠ΄Π΅ΠΊΠ° ΡΠΎΠ·Π΄Π°Π²Π°Π²ΠΌΠ΅ Π°Π»Π°ΡΠΊΠ° Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π²ΠΎ ΡΠ»ΠΈΠΊΠΈΡΠ΅ Π½Π° Docker, Π±ΡΠ·ΠΎ ΡΡΠ°ΡΠΈΠ²ΠΌΠ΅ Π΄Π΅ΠΊΠ° Dockerfile Π½Π΅ Π΅ ΠΏΠΎΠ³ΠΎΠ΄Π΅Π½ Π·Π° Π½Π°Ρ Π·Π° Π½Π΅ΠΊΠΎΠΈ ΠΌΠ½ΠΎΠ³Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ:
- ΠΠΎΡΡΠ΅Π±Π°ΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π°Ρ ΡΠΈΠΏΠΈΡΠ½ΠΈ ΠΌΠ°Π»ΠΈ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° ΡΠ΅ΠΌΠ°:
- ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½ΠΈΠ· ΡΠ΅Π»ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ,
- ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡ ΠΎΠ΄ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ,
- ΡΠΎΠ±ΠΈΡΠ° ΡΡΠ΅Π΄ΡΡΠ²Π°,
- ΠΈ ΡΡΠΎ Π΅ Π½Π°ΡΠ²Π°ΠΆΠ½ΠΎ, Π°ΠΆΡΡΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ° Π±ΡΠ·ΠΎ ΠΈ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ.
- ΠΠΎΠ³Π° ΡΠ΅ ΠΏΡΠ°Π²Π°Ρ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ½ΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, Π³ΡΠ°Π΄ΠΈΡΠ΅Π»ΠΎΡ ΠΌΠΎΡΠ° Π±ΡΠ·ΠΎ Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ Π½ΠΎΠ² ΡΠ»ΠΎΡ ΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π° Π½Π° Π·Π°ΠΊΡΠΏΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ.
- ΠΠΊΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅ΡΠΈ, ΡΠΎΠ³Π°Ρ Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° Π·Π°Π²ΠΈΡΠ½Π° ΡΠ°Π·Π°.
ΠΠ΅Π½Π΅Ρ Π½Π°ΡΠΈΠΎΡ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΎΠ½Π΅Ρ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ Π΄ΡΡΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΡΠΎΠ° Π±Π΅Π° ΠΏΡΠ²ΠΈΡΠ½ΠΈΡΠ΅ ΠΆΠ΅Π»Π±ΠΈ ΠΈ ΠΏΠΎΡΠΈΠ²ΠΈ.
ΠΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ, Π±Π΅Π· Π΄Π° ΡΠ°Π·ΠΌΠΈΡΠ»ΠΈΠΌΠ΅ Π΄Π²Π°ΠΏΠ°ΡΠΈ, ΡΠ΅ Π²ΠΎΠΎΡΡΠΆΠΈΠ²ΠΌΠ΅ ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈΠΎΡ ΡΠ°Π·ΠΈΠΊ ΡΡΠΎ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π²ΠΌΠ΅ (ΠΠΈΠ΄ΠΈ ΠΏΠΎΠ΄ΠΎΠ»Ρ) ΠΈ ΡΡΠ³Π½Π° Π½Π° ΠΏΠ°ΡΠΎΡ Π·Π° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½ DSL! ΠΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ ΡΠ΅Π»ΠΈΡΠ΅, ΡΡΠ΅Π±Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π²ΠΎ ΡΠ°Π·ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄Π°Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΎΠ²ΠΈΠ΅ ΡΠ°Π·ΠΈ ΠΎΠ΄ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈΡΠ΅. Π Π³ΠΎ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΠΈ ΡΠΎΠΏΡΡΠ²Π΅Π½ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΎΠ½Π΅Ρ, ΡΡΠΎ Π³ΠΎ ΠΏΡΠ΅ΡΠ²ΠΎΡΠΈ DSL Π²ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½Π° ΡΠ΅Π» - ΡΠΊΠ»ΠΎΠΏΠ΅Π½Π° ΡΠ»ΠΈΠΊΠ°. ΠΠ° ΠΏΠΎΡΠ΅ΡΠΎΠΊΠΎΡ DSL Π±Π΅ΡΠ΅ Π²ΠΎ Π ΡΠ±ΠΈ, Π½ΠΎ ΠΊΠ°ΠΊΠΎ
Π‘ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π·Π° dapp Π²ΠΎ Π ΡΠ±ΠΈ
Π’Π΅ΠΊΠΎΠ²Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π·Π° werf Π½Π° YAML
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΡ Π½Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡΠΎΡ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠ΅ΠΊΠΎΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ. ΠΡΠΏΡΠ²ΠΈΠ½, Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π²ΠΌΠ΅ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ Dockerfile Π²ΠΎ Π»Π΅Ρ ΠΎΠ΄ Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°, Π° ΠΏΠΎΡΠΎΠ° ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ ΡΠΏΠ°ΡΡΡΠ²Π°ΡΠ° Π·Π° ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΏΡΠΈΠ²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΈ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅.
NB: ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², Π½Π°ΡΠΈΠΎΡ ΠΊΠΎΠ»Π΅ΠΊΡΠΈΠΎΠ½Π΅Ρ, ΠΊΠΎΡ ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ ΡΠΎΠΏΡΡΠ²Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° (Π²ΠΎ YAML) ΠΈ ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° ΠΊΠΎΠ»Π΅ΠΊΡΠΎΡ Π½Π° Stapel, Π²Π΅ΡΠ΅ ΡΠ΅ ΡΠ°Π·Π²ΠΈ Π²ΠΎ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ ΠΌΠΎΡΠ½Π° Π°Π»Π°ΡΠΊΠ°. ΠΠ΅Π³ΠΎΠ²ΠΈΠΎΡ Π΄Π΅ΡΠ°Π»Π΅Π½ ΠΎΠΏΠΈΡ Π·Π°ΡΠ»ΡΠΆΡΠ²Π° ΠΏΠΎΡΠ΅Π±Π½ΠΈ Π½Π°ΠΏΠΈΡΠΈ, Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΄Π°Ρ Π²ΠΎ
Π‘Π²Π΅ΡΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ
ΠΠΎ, ΡΡΠ°ΡΠΈΠ²ΠΌΠ΅, ΠΈ ΡΠΎΠ° Π½Π΅ Π²Π΅Π΄Π½Π°Ρ, Π΄Π΅ΠΊΠ° Π½Π°ΠΏΡΠ°Π²ΠΈΠ²ΠΌΠ΅ Π΅Π΄Π½Π° Π³ΡΠ΅ΡΠΊΠ°: Π½Π΅ ΡΠ° Π΄ΠΎΠ΄Π°Π΄ΠΎΠ²ΠΌΠ΅ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠ° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΏΡΠ΅ΠΊΡ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ Dockerfile ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΡΡΠ΅ Π³ΠΈ Π²ΠΎ ΠΈΡΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ΄ ΠΊΡΠ°Ρ Π΄ΠΎ ΠΊΡΠ°Ρ (Ρ.Π΅. ΡΠΎΠ±ΠΈΡΠ°ΡΡΠ΅ ΡΠ»ΠΈΠΊΠΈ, ΡΠ°ΡΠΏΠΎΡΠ΅Π΄Π΅ΡΠ΅ Π³ΠΈ ΠΈ ΠΈΡΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΈ). ΠΠ°ΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ Π°Π»Π°ΡΠΊΠ° Π·Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΡΠ±Π΅ΡΠ½Π΅ΡΡ ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π·Π° Dockerfile, Ρ.Π΅. ΡΡΠ°Π½Π΄Π°ΡΠ΄Π΅Π½ Π½Π°ΡΠΈΠ½ Π·Π° ΠΎΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠΈ Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈ?..
ΠΠ°ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π° ΠΏΡΠ°ΡΠ°ΡΠ΅, Π½ΠΈΠ΅ Π½ΡΠ΄ΠΈΠΌΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅. Π¨ΡΠΎ Π°ΠΊΠΎ Π²Π΅ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ Dockerfile (ΠΈΠ»ΠΈ Π·Π±ΠΈΡ Π½Π° Dockerfiles) ΠΈ ΡΠ°ΠΊΠ°ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ werf?
NB: ΠΠ°ΡΠ΅ΠΌ, Π·ΠΎΡΡΠΎ Π²ΠΎΠΎΠΏΡΡΠΎ Π±ΠΈ ΡΠ°ΠΊΠ°Π»Π΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ werf? ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ΅ ΡΠ²Π΅Π΄ΡΠ²Π°Π°Ρ Π½Π° ΡΠ»Π΅Π΄Π½ΠΎΠ²ΠΎ:
- ΡΠ΅Π»ΠΎΡΠ΅Π½ ΡΠΈΠΊΠ»ΡΡ Π½Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΡΠ²Π°ΡΡΠΈ ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠΈ;
- ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄Π΅Π΄Π½Π°Ρ ΠΎΠ΄ Π΅Π΄Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°;
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π·Π° Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΈ ΠΊΠΎΠΌΠΏΠ°ΡΠΈΠ±ΠΈΠ»Π½ΠΈ ΡΠΎ Helm.
ΠΠΎΡΠ΅Π»ΠΎΡΠ΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ΄ Π½ΠΈΠ² ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΄Π΅ Π½Π°
ΠΠ½Π°ΡΠΈ, Π°ΠΊΠΎ ΠΏΠΎΡΠ°Π½ΠΎ Π±ΠΈ ΠΏΠΎΠ½ΡΠ΄ΠΈΠ»Π΅ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ Dockerfile Π²ΠΎ Π½Π°ΡΠ°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°, ΡΠ΅Π³Π° ΡΠΎ Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΡΡΠ²ΠΎ ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΠΌΠ΅: βΠΠΎΠ·Π²ΠΎΠ»Π΅ΡΠ΅ ΠΌΡ Π΄Π° Π³ΠΈ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ Π²Π°ΡΠΈΡΠ΅ Dockerfiles!β
ΠΠ°ΠΊΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ?
Π¦Π΅Π»ΠΎΡΠ½Π°ΡΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΡΠ΅ ΠΏΠΎΡΠ°Π²ΠΈ Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ werf build
... ΠΈ ΡΠΎΠ° Π΅ ΡΠΎΠ° - werf ΡΠ΅ ΡΠ° ΡΠΎΡΡΠ°Π²ΠΈ ΡΠ»ΠΈΠΊΠ°ΡΠ°. ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ Π°ΠΏΡΡΡΠ°ΠΊΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ.
ΠΡΠ΄Π΅ Π΄Π° Π³ΠΎ ΠΎΠ±ΡΠ°Π²ΠΈΠΌΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΠΎΡ Dockerfile
Π²ΠΎ ΠΊΠΎΡΠ΅Π½ΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ:
FROM ubuntu:18.04
RUN echo Building ...
Π ΡΠ΅ ΠΎΠ±ΡΠ°Π²ΠΈΠΌΠ΅ werf.yaml
ΠΊΠΎΡ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ²Π° Dockerfile
:
configVersion: 1
project: dockerfile-example
---
image: ~
dockerfile: ./Dockerfile
Π‘ΠΈΡΠ΅! ΠΠ΅Π²ΠΎ ΡΡΡΠ° werf build
:
ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΡΠ°Π²ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΠ²ΠΎ 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 Π²ΠΎ ΡΠ²ΠΎΡΠ°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°. Π¨ΡΠΎ Π·Π½Π°ΡΠΈ ΡΠΎΠ°?
- Π‘Π΅ΠΊΠΎΡΠ° ΡΠ»ΠΈΠΊΠ° ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½Π° ΠΎΠ΄ Dockerfile ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ Π΅Π΄Π½Π° ΡΠ°Π·Π° Π½Π°ΡΠ΅ΡΠ΅Π½Π°
dockerfile
(ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΠΎΠ° ΠΊΠΎΠΈ ΡΠ°Π·ΠΈ ΡΠ΅ Π²ΠΎ Π²Π΅ΡΡΡΡΠΊΠ° ). - ΠΠ° ΡΡΠ΅Π½Π°ΡΠ°
dockerfile
werf ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° ΠΏΠΎΡΠΏΠΈΡ ΠΊΠΎΡ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Dockerfile. ΠΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° Dockerfile, ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π° ΠΏΠΎΡΠΏΠΈΡΠΎΡ Π½Π° ΡΡΠ΅Π½Π°ΡΠ°dockerfile
ΠΈ werf ΠΈΠ½ΠΈΡΠΈΡΠ° ΠΎΠ±Π½ΠΎΠ²Π° Π½Π° ΠΎΠ²Π°Π° ΡΠ°Π·Π° ΡΠΎ Π½ΠΎΠ²Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ° Π½Π° Dockerfile. ΠΠΊΠΎ ΠΏΠΎΡΠΏΠΈΡΠΎΡ Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠΎΠ³Π°Ρ werf ΡΠ° Π·Π΅ΠΌΠ° ΡΠ»ΠΈΠΊΠ°ΡΠ° ΠΎΠ΄ ΠΊΠ΅ΡΠΎΡ (ΠΏΠΎΠ²Π΅ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΠΏΠΎΡΠΏΠΈΡΠΈ Π²ΠΎ Π²Π΅ΡΡ Π±Π΅Π° ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎΠΎΠ²ΠΎΡ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ ). - Π‘Π»Π΅Π΄Π½ΠΎ, ΡΠΎΠ±ΡΠ°Π½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π°Ρ ΡΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
werf publish
(ΠΠ»ΠΈwerf build-and-publish
) ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π³ΠΎ Π·Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π²ΠΎ ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρ. ΠΠ±ΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ Π²ΠΎ Docker Registry ΡΠ΅ ΡΠ΅ ΡΠΈΡΡΠ°Ρ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° werf, Ρ.Π΅. Π‘ΡΠ°ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ (ΠΏΠΎΡΡΠ°ΡΠΈ ΠΎΠ΄ N Π΄Π΅Π½Π°), ΡΠ»ΠΈΠΊΠΈΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ Π½Π΅ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ Π³ΡΠ°Π½ΠΊΠΈ Π½Π° Git ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ ΡΠ΅ ΡΠ΅ ΡΠΈΡΡΠ°Ρ.
ΠΠΎΠ²Π΅ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π·Π° ΡΠΎΡΠΊΠΈΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈ ΠΎΠ²Π΄Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΡΠ΄Π΅ΡΠ΅ Π²ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ°:
-
ΠΡΠΎΡΠ΅Ρ Π½Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ ; -
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Kubernetes ; -
ΠΡΠΎΡΠ΅Ρ Π½Π° ΡΠΈΡΡΠ΅ΡΠ΅ .
ΠΠ°Π±Π΅Π»Π΅ΡΠΊΠΈ ΠΈ ΠΌΠ΅ΡΠΊΠΈ Π½Π° ΠΏΡΠ΅ΡΠΏΠ°Π·Π»ΠΈΠ²ΠΎΡΡ
1. ΠΠ°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ URL Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ Π²ΠΎ ADD
ΠΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΎ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ΅Π½ URL Π²ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° ADD
. Werf Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠ½ΠΈΡΠΈΡΠ° ΠΎΠ±Π½ΠΎΠ²Π° ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΎΡ Π½Π° Π½Π°Π²Π΅Π΄Π΅Π½Π°ΡΠ° URL Π°Π΄ΡΠ΅ΡΠ°. ΠΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΡΠ° Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π½Π°ΡΠΊΠΎΡΠΎ.
2. ΠΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ .git Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ°
ΠΠΏΡΡΠΎ Π·Π΅ΠΌΠ΅Π½ΠΎ, Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ .git
Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ° - Π·Π»ΠΎΠ±Π½Π° Π»ΠΎΡΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΈ Π΅Π²Π΅ Π·ΠΎΡΡΠΎ:
- ΠΠΊΠΎ
.git
ΠΎΡΡΠ°Π½ΡΠ²Π° Π²ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ°, ΠΎΠ²Π° Π³ΠΈ Π½Π°ΡΡΡΡΠ²Π° ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΡΠ΅ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΠ° ΡΠΎ 12 ΡΠ°ΠΊΡΠΎΡΠΈ : ΠΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΠ½Π΅ΡΠ½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΠΎΠ²ΡΠ·Π°Π½Π° ΡΠΎ Π΅Π΄Π½ΠΎ ΠΎΠ±Π²ΡΠ·ΡΠ²Π°ΡΠ΅, ΡΠΎΠ° Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎgit checkout
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅. -
.git
ΡΠ° Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ° (ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ Π½Π° Π½Π΅Π³ΠΎ Π΅Π΄Π½Π°Ρ Π±Π΅Π° Π΄ΠΎΠ΄Π°Π΄Π΅Π½ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, Π° ΠΏΠΎΡΠΎΠ° ΠΈΠ·Π±ΡΠΈΡΠ°Π½ΠΈ). ΠΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΎΡΠΎ ΡΡΠ΅Π±Π»ΠΎ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΎ ΡΠ°ΠΌΠΎ ΡΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΎΠ±Π²ΡΡΠΊΠ° Π½Π΅ΠΌΠ° Π΄Π° Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π²ΠΎ Git. ΠΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅.git
ΠΎΠ΄ ΠΊΠΎΠ½Π΅ΡΠ½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π½Π΅ΠΌΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ: ΡΠ»ΠΈΠΊΠ°ΡΠ° ΡΠ΅ΠΏΠ°ΠΊ ΡΠ΅ Π΄ΠΎΠ±ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΡΠ»ΠΎΡ - Π²Π°ΠΊΠ° ΡΠ°Π±ΠΎΡΠΈ Docker. - ΠΠΎΠΊΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ½ΠΈΡΠΈΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½Π° ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΠ°, Π΄ΡΡΠΈ ΠΈ Π°ΠΊΠΎ ΡΠ΅ Π³ΡΠ°Π΄ΠΈ ΠΈΡΡΠΎΡΠΎ Π·Π°Π»ΠΎΠΆΠ±Π°, Π½ΠΎ ΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈ Π΄ΡΠ²ΡΠ°. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, 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 Π‘ΠΏΠΈΡΠΎΠΊ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° ΡΠ΅ΠΌΠ°ΡΠ°
-
ΠΠΎΠ΄ΠΈΡΠΈ Π·Π° Π±ΡΠ· ΠΏΠΎΡΠ΅ΡΠΎΠΊ ; -
ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π° Π³ΡΠ°Π΄ΠΈΡΠ΅Π» Π½Π° dockerfile ; -
Π€Π°Π·ΠΈ ΡΡΠ΅Π΄ Π²ΠΎ Π²Π΅ΡΡ ; -
ΠΡΠΎΡΠ΅Ρ Π½Π° ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ; -
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Π½Π° ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Kubernetes ; -
ΠΡΠΎΡΠ΅Ρ Π½Π° ΡΠΈΡΡΠ΅ΡΠ΅ ; -
Stapel Builder ΠΊΠ°ΠΊΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Dockerfile .
ΠΡΠΎΡΠΈΡΠ°ΡΡΠ΅ ΠΈ Π²ΠΎ Π½Π°ΡΠΈΠΎΡ Π±Π»ΠΎΠ³:
ΠΠ·Π²ΠΎΡ: www.habr.com