áááºáá±á¬á·á០áá±á¬ááºáá»áᬠááá¯áá±á¬ááºážáá«áááºá ááá¯á·ááá¯áẠá¡ááá®áá±ážááŸááºážáá¯á¶áá»á¬ážááᯠáááºáá±á¬ááºáááºá¡ááœáẠáá¯á¶ááŸáẠDockerfiles áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááááŸáááŒááºážááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠááŒá®ážáá±ážáá±á¬á¡ááŸá¬ážááᯠáááºááá¯á·áá¯ááºáá²á·ááááºážá
á¡ááŒá±á¬ááºážááŒá±á¬áá«áááºá
- áá¯á¶áá»á¬ážááᯠá á¯áá±á¬ááºážáá¯ááºáá±ááŒááºážá
- Kubernetes ááœáẠá¡ááá®áá±ážááŸááºážáá»á¬áž ááŒáá·áºáá»ááºá
- á¡áá°ážáá°áá«ááá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á á¡áá¯á¶ážáááŒá¯áá±á¬áá¯á¶áá»á¬ážááᯠáá»ááºáá«á
ááá±á¬áá»ááºááá¿áááẠDevOps á¡ááºáá»ááºáá®áá¬áá»á¬ážá¡á¬áž á¡ááá®áá±ážááŸááºážáá»á¬ážááᯠááááºážáá»á¯ááºáá±ážááá·áº áá
áºáá¯áááºážáá±á¬ áá±á«ááºážá
ááºá
áá
áºáá
áºáá¯á¡ááŒá
Ạá¡ááá·áºáááá·áºáááááá¬áá»á¬ážááᯠá
á¯áá±á¬ááºážáááºááŒá
áºáááºá ááŒá
áºááá¯ááºáá«áá ááŸáááŒá®ážáá¬áž á¡áá¯á¶ážá¡áá±á¬ááºáá»á¬áž (Helm ááŸáá·áº Docker áá²á·ááá¯á·) ááᯠá¡áá¯á¶ážááŒá¯ááá·áºáááºá ááŒá¿áá¬áá
áºáá¯á¡ááœáẠá¡ááŒá±áááŸááá«áá á€á¡ááœáẠááá¯á¡ááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá®ážááŒá®áž áá¶á·ááá¯ážáá±ážááá¯ááºáá«áááºá
áá±á¬ááºáá¶- ááá·áºááá¯ááºááá¯áẠáá¯á¶á á¯áá±á¬ááºážáá°
werf ááŸá áá¯á¶á
á¯áá±á¬ááºážáá°ááŸáá·áº á€á¡áá¬ááẠááŒá
áºáá»ááºáá²á·áááº- áá¯á¶ááŸáẠDockerfile ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠááá¯á¶áá±á¬ááºáá«á ááá±á¬áá»ááºááááá¯ááºážááŒá±á¬ááºážááᯠá¡ááŒááºááŒáá·áºááŸá¯áá«áá á€ááŒá¿áá¬ááẠwerf áááááá¬ážááŸááºážááœááºááŸááá±ááŒá®ááŒá
áºááẠ(ááá¯á·áá±á¬ááºááœááºá
Docker áá¯á¶áá»á¬ážááœáẠá¡ááá®áá±ážááŸááºážáá»á¬ážáááºáá±á¬ááºáááºá¡ááœáẠáááááá¬áá áºáá¯áááºáá®ážáá±á ááºááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááœááºáááá»áá±á¬áá¯ááºáá±á¬ááºá áá¬á¡áá»áá¯á·á¡ááœáẠDockerfile ááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠáááá·áºáá»á±á¬áºááŒá±á¬ááºáž áá»ááºááŒááºá áœá¬ááááŸááá¬ážáááºáá²á·áá«áááºá
- á¡á±á¬ááºáá±á¬áºááŒáá« á
á¶á¡á
á®á¡á
ááºá¡á áá¯á¶ááŸááºáá±ážáááºáá±á¬ áááºá¡ááºááá®áá±ážááŸááºážáá»á¬ážááᯠáááºáá±á¬ááºááẠááá¯á¡ááºáááº-
- á áá áºáá áºáá¯áá¯á¶áž á¡ááá®áá±ážááŸááºáž ááŸá®ááá¯ááŸá¯ááᯠááá·áºááœááºážáá«á
- á¡ááá®áá±ážááŸááºážááŸá®ááá¯áá±ááá±á¬ á á¬ááŒáá·áºááá¯ááºá¡á á¯á¡áá±ážááᯠááá·áºááœááºážáá«á
- ááá¯ááºááá¯ááºááŸá¯á á¯áá±á¬ááºážá
- á¡áá±ážá¡ááŒá®ážáá¯á¶ážááá±á¬á· áá¯á¶áá²ááá¯ááºááᯠááŒááºááŒááºáááºáááºáá²á· áááááá±á¬ááºáá±á¬áẠá¡ááºááááºáá¯ááºáá«á
- ááá±á¬áá»ááºááá¯ááºáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááŒá¯áá¯ááºáá±á¬á¡áá«á áááºáá±á¬ááºáá°ááẠááŒá±á¬ááºážáá²áá¬ážáá±á¬ááá¯ááºáá»á¬ážááá¯á· patch ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº á¡ááœáŸá¬á¡áá áºáá áºáá¯ááᯠá¡ááŒááºáááºáá®ážááá«áááºá
- á¡áá»áá¯á·áá±á¬ááá¯ááºáá»á¬áž ááŒá±á¬ááºážáá²ááœá¬ážáá«á áááºááá¯ááºáᬠááŸá®ááá¯ááŸá¯á¡ááá·áºááᯠááŒááºáááºáááºáá±á¬ááºááẠááá¯á¡ááºáá«áááºá
ááá±á·áá»áœááºá¯ááºááá¯á·áá á¯áá±á¬ááºážáá°ááœáẠá¡ááŒá¬ážááŒá áºááá¯ááºáá»á±áá»á¬ážá áœá¬ááŸááá±á¬áºáááºáž áááºážááá¯á·ááẠáááŠážááá¹ááá»á¬ážááŸáá·áº ááá¯ááºááœááºážáá»ááºáá»á¬ážááŒá áºáááºá
áá±áá°áá»á¡á¬ážááŒáá·áºá ááŸá
áºáá«áááœá±ážáá²á áá«ááá¯á·áá¯á¶ážáá²á· áááá¯ááááºážáááºážáá¬áá¬á
áá¬ážáá²á· ááá¯áá·áºááá¯ááá¯áẠáááºáááºáááºáááºáááºá (á¡á±á¬ááºááœááºááŒááºá·áá«) á¡áá±á¬ááºá¡áááºáá±á¬áºááẠáááºážááᯠááŸáááºáá«á ááá¯ááºááá¯áẠDSL! áááºááœááºáá»ááºáá»á¬ážááŸáá·áºá¡áá®á áááºážááẠá¡ááá·áºááá·áºáá±á¬ á
á¯áá±ážááŸá¯áá¯ááºáááºážá
ááºááᯠáá±á¬áºááŒáááºááŸáá·áº ááá¯ááºáá»á¬ážáá±á«áºááœáẠá€á¡ááá·áºáá»á¬ážá ááŸá®ááá¯ááŸá¯ááᯠáá¯á¶ážááŒááºááẠáááºááœááºáá«áááºá ááŒá®ážáá±á¬á· ááŒáá·áºáá±ážáááºá ááá¯ááºááá¯ááºá
á¯áá±á¬ááºážáá°DSL ááᯠáá±á¬ááºáá¯á¶ážáááºážááá¯ááºá¡ááŒá
ẠááŒá±á¬ááºážáá²áá±ážááá·áº - á
á¯áá¯á¶áá¬ážáá±á¬áá¯á¶á ááááá±á¬á· DSL ááẠRuby ááœááºááŸááá±á¬áºáááºážá
Ruby ááŸá dapp á¡ááœáẠconfig á¡áá±á¬ááºáž
YAML ááŸá werf á¡ááœáẠáááºááŸá config
á á¯áá±á¬ááºážáá°á ááá¹ááá¬ážáááºáááºáž á¡áá»áááºááŸáá·áºá¡áá»áŸ ááŒá±á¬ááºážáá²áá¬áááºá á¡á ááá¯ááºážááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áááœá²á·á ááºážáá¯á¶á áá áºá០áá¬áá® Dockerfile ááᯠááá¯ážááá¯ážááŸááºážááŸááºážáá¯ááºáá±ážáá²á·ááŒá®ážá ááá¯á·áá±á¬ááºááœáẠáá¬áá®ááœááºááááºáá¬áá»á¬ážááœáẠáááºáááºááŸá¯ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠá áááºáá¯ááºáá±á¬ááºááŒá®áž áááááŒá¯áá«áááºá
NB: ááá¯á¡áá»áááºááœááºá áááºážáááá¯ááºááá¯áẠconfig (YAML) ááŒáá·áºá¡áá¯ááºáá¯ááºááŒá®áž Stapel collector áá¯áá±á«áºáá±á¬ áá»áœááºá¯ááºááá¯á·áá
á¯áá±á¬ááºážáá°ááẠá¡ááœááºá¡á
áœááºážáááºáá±á¬áááááá¬áá
áºáá¯á¡ááŒá
Ạáá®ááœááºáá¬ážááŒá®ážááŒá
áºáááºá áááºážáá¡áá±ážá
áááºáá±á¬áºááŒáá»ááºááẠáá®ážááŒá¬ážáá±á¬ááºážáá«ážáá»á¬ážááŸáá·áº ááá¯ááºáááºááŒá®áž á¡ááŒá±áá¶á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááœááºááœá±á·ááá¯ááºáá«áááºá
ááŒá¿áá¬ááᯠááááá¬ážáá«á
áá«áá±ááá·áº áá»áœááºáá±á¬áºááá¯á· á¡ááŸá¬ážáá áºáá¯áá¯ááºááááŒá±á¬ááºáž áá»ááºáá»ááºážááá±á¬áá±á«ááºááŒá®áž á áœááºážáááºááᯠáááá·áºáá²á·áá«áá°ážá áá¯á¶ááŸáẠDockerfile ááŸáááá·áº áá¯á¶áá»á¬ážááᯠáááºáá±á¬ááºáá«á ááŒá®ážáá»áŸáẠáááºážááá¯á·ááᯠáá°áá®áá±á¬ á¡áá¯á¶ážááŸá¡áá¯á¶áž á¡ááá®áá±ážááŸááºáž á á®áá¶ááá·áºááœá²ááŸá¯ á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááœáẠáá±á«ááºážá ááºážáá« (ááá¯ááá¯áááºááŸá¬ áá¯á¶áá»á¬ážááᯠá á¯áá±á¬ááºážá á¡áá¯á¶ážááŒá¯áááºááŸáá·áº áááºážááá¯á·ááᯠááá·áºááŸááºážá á±áááº)á Kubernetes ááœáẠááŒáá·áºáá»ááºá¡áá¯á¶ážááŒá¯ááẠáááááá¬áá áºáá¯ááᯠDockerfile áá¶á·ááá¯ážááŸá¯ááᯠá¡áá±á¬ááºá¡áááºááá±á¬áºáá² áááºááá¯á·ááŒá áºááá¯ááºáááºáááºážá ááá±á¬áá»ááºá¡áá»á¬ážá á¯á¡ááœáẠáá¯á¶áá»á¬ážááá¯áá±á¬áºááŒááẠá á¶áááºážáááºážá
á€áá±ážááœááºážááá¯ááŒá±ááá¯ááá·áºá¡á á¬áž áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±áá áºáá¯áá±ážáá«áááºá ááá·áºááœáẠDockerfile (ááá¯á·ááá¯áẠDockerfiles á¡á á¯áá áºáá¯) ááŸáááŸáá·áºááŒá®áž werf ááá¯á¡áá¯á¶ážááŒá¯ááá¯áá»áŸááºáá±á¬á
NB: á áá¬ážáá ááºá áááºážáá¬ááá¯á· werf áá¯á¶ážáá»ááºáá¬áá²á á¡ááá á¡ááºá¹áá«áááºáá»á¬ážááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá áºáááºá
- áá¯ááºáá¯á¶ááá·áºááŸááºážáá±ážá¡áá«á¡ááẠá¡ááºááºáá®áá±ážááŸááºáž á á®áá¶ááá·áºááœá²ááŸá¯ á ááºáááºážá¡ááŒáá·áºá¡á á¯á¶á
- áá áºáá¯áááºážáá±á¬ config áá áºáá¯ááŸáá áºááŒáá¯ááºáááºáá¯ááºáá¯á¶áá»á¬ážá áœá¬áá ááºážáá±ážááœá²ááá¯á á®áá¶ááá·áºááœá²áááºá áœááºážáááºá
- Helm-áááá¬áááá¬ážáá»á¬ážá¡ááœáẠááá¯ááá¯áá±á¬ááºážááœááºáá±á¬ á¡áá¯á¶ážáá»ááŸá¯áá¯ááºáááºážá ááºá
áááºážááá¯á·á¡áááºá០ááá¯ááá¯ááŒáá·áºá
á¯á¶áá±á¬á
á¬áááºážááᯠááœáẠááœá±á·ááá¯ááºáá«áááºá
ááá¯á·ááŒá±á¬áá·áºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·á config ááœáẠDockerfile ááᯠááŒááºáááºáá±ážáá¬ážááẠáááºážááŸááºážáá²á·áááºááá¯áá»áŸááºá ááᯠáá»áœááºá¯ááºááá¯á· áá»á±á¬áºááœáŸááºá áœá¬ááŒá±á¬ááá¯ááºáá«áááº- "áááºá Dockerfiles ááᯠáááºáá±á¬ááºááŒáá«á áá¯á·á"
áá¯á¶ážá áœá²ááá¯á·áááºááá¯áá±ááá²?
á€á¡ááºá¹áá«áááºá á¡ááŒáá·áºá¡áá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠááŒáá·áºáá»áááŸá¯ááœáẠáá±á«áºáá¬áááºá werf build
... áá«áá² - werf á áá¯á¶ááᯠá
á¯á
ááºážáá«áááºá á
ááá¹ááááá°áá¬áá
áºáá¯ááᯠááŒáá·áºááŒáá«á
áá¯á·á
áá±á¬ááºáá
áºáá¯ááŒá±ááŒá¬áá«áá
á± Dockerfile
ááá±á¬áá»áẠroot ááœááº-
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
áá±á¬ááºáá¯á¶ážááœááºá áááºážáááºááá¯áá²á·ááá¯á·áá±á¬áá±á¬ááºáááºáááºáá±á¬ááºááŸá¯ parameters áá»á¬ážááá¯ááŒááºáááºážááŒááºážááá¯áááºážáá±á¬ááºáá¶á·áá±ážáááºá --build-arg
О --add-host
- werf config ááŸáááá·áºá Dockerfile image configuration á ááŒá®ážááŒáá·áºá
á¯á¶áá±á¬ ááŸááºážáááºážáá»ááºá¡á¬áž ááœáẠáááá¯ááºáá«áááºá
áááºááá¯á¡áá¯ááºáá¯ááºááá²
áááºáá±á¬ááºááŸá¯áá¯ááºáááºážá ááºá¡ááœááºážá Docker áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááŸá áá±ááá¹ááá¡ááœáŸá¬áá»á¬ážá á á¶áááºááŸáºá ááá¯á·áá±á¬áº á¡áá±ážááŒá®ážáááºááŸá¬ áááºáá¶áááºážááŒá áºáááºá Dockerfile configuration ááᯠáááºážáá¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááœáẠáá±á«ááºážá ááºáá¬ážáááºá. áá«áá¬ááá¯ááá¯ááá¯áá¬áá«áá²?
- Dockerfile ááŸáááºáá±á¬ááºáá¬ážáá±á¬áá¯á¶áá
áºáá¯á¶áá»ááºážá
á®ááœááºá¡ááá·áºáá
áºáá¯áá¯áá±á«áºáááºá
dockerfile
(Werf ááœáẠáááºááá·áºá¡ááá·áºáá»á¬áž ááŸááááºááᯠáááºááá¯ááá¯áááºááŸá¯ááá¯ááºáá«áááºááá®ááŸá¬ ). - á
ááºáá±á«áºááŸá¬
dockerfile
werf ááẠDockerfile configuration áá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážáá±á«áºááœááºáá°áááºáá±á¬áááºááŸááºááá¯ááœááºáá»ááºáááºá Dockerfile configuration ááŒá±á¬ááºážáá²áá±á¬á¡áá«á á¡ááá·áºáááºááŸááºááẠááŒá±á¬ááºážáá²ááœá¬ážáá«áááºádockerfile
ááŸáá·áº werf ááẠDockerfile config á¡áá áºááŒáá·áº á€á¡ááá·áºááᯠááŒááºáááºáááºáá±á¬ááºáááºá áááºááŸááºáááŒá±á¬ááºážáá²áá«á werf ááẠáá¯á¶ááᯠcache ááŸáá°áááºá (Werf ááœáẠáááºááŸááºáá»á¬ážá¡áá¯á¶ážááŒá¯ááŒááºážááá¯ááºáᬠá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠááœáẠáá±á¬áºááŒáá¬ážáá«áááºááá®á¡á á®áááºáá¶á ᬠ). - ááá¯á·áá±á¬áẠá
á¯áá±á¬ááºážáá¬ážáá±á¬ áá¯á¶áá»á¬ážááᯠá¡áááá·áºááŒáá·áº áá¯ááºááŒááºááá¯ááºáááºá
werf publish
(ááá¯á·ááá¯ááºwerf build-and-publish
) ááŸáá·áº Kubernetes ááá¯á· á¡áá¯á¶ážáá»áááºá¡ááœáẠáááºážááᯠá¡áá¯á¶ážááŒá¯áá«á Docker Registry ááœáẠáá¯ááºáá±áá¬ážáá±á¬ áá¯á¶áá»á¬ážááᯠstandard werf cleanup tools áá»á¬ážá¡áá¯á¶ážááŒá¯á ááŸááºážáááºážááœá¬ážáááºááŒá áºáá«áááºá áá¯á¶áá±á¬ááºážáá»á¬áž (N áááºááẠááá¯ááŒá®ážáááº)á áááºááŸáááŒááºážáááŸááá±á¬ Git á¡ááá¯ááºážá¡áááºáá»á¬ážááŸáá·áº áááºá ááºáá±ááá·áº áá¯á¶áá»á¬ážááŸáá·áº á¡ááŒá¬ážáá°áá«ááá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠááá·áºá ááºááœá¬ážáá«áááºá
á€áá±áá¬ááœááºáá±á¬áºááŒáá¬ážááá·áºá¡áá»ááºáá»á¬ážá¡ááŒá±á¬ááºážá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬ážááᯠá á¬ááœááºá á¬áááºážáá»á¬ážááœáẠááŒáá·áºááŸá¯ááá¯ááºáááº-
-
áá¯ááºáá±ááŒááºážáá¯ááºáááºážá áẠ; -
Kubernetes ááŒáá·áºáá»ááºááŸá¯ áá¯ááºáááºážá ááºááŸáá·áº áá±á«ááºážá ááºááŒááºážá ; -
ááá·áºááŸááºážáá±ážáá¯ááºáááºážá áẠ.
ááŸááºá á¯áá»á¬ážááŸáá·áº ááŒáá¯áááºáá¬ááœááºááŸá¯áá»á¬áž
1. ááŒááºá URL ááᯠADD ááœáẠááá¶á·ááá¯ážáá«á
ááœáŸááºááŒá¬ážáá»ááºááœáẠááŒááºá URL ááᯠá¡áá¯á¶ážááŒá¯ááẠáá±á¬áá±á¬ááẠáááºážááᯠáá¶á·ááá¯ážááá¬ážáá«á ADD
. áááºááŸááºáá¬ážáá±á¬ URL á០á¡áááºážá¡ááŒá
áºáá»á¬áž ááŒá±á¬ááºážáá²áá±á¬á¡áá«ááœáẠWerf ááẠááŒááºáááºáááºáá±á¬ááºááŒááºážá¡á¬áž á
áááºáááºááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠá€á¡ááºá¹áá«áááºááᯠáááŒá¬áá®ááá·áºááœááºážááẠá
á®á
ááºáá¬ážáááºá
2. áá¯á¶ááœáẠ.git ááá·áºááááá«á
áá±áá¯áá»á¡á¬ážááŒáá·áºááŒá±á¬ááá»áŸáẠáááºážááœáŸááºáá
áºáá¯ááá·áºáááºá .git
áá¯ááºáá¯á¶áá²ááœáẠ- ááá¯ážááœá¬ážááá¯ážááœá¬ážáá±á¬ á¡áá±á·á¡áá»áá·áºáá
áºáá¯ááŒá
áºááŒá®áž á€áááºááŸá¬ á¡áááºááŒá±á¬áá·áºáááºážá
- áá»áŸááº
.git
áá±á¬ááºáá¯á¶ážáá¯á¶ááœáẠáá»ááºááŸááá±áááºá áááºážááẠá¡ááŒá±áá¶áá°áá»á¬ážááᯠáá»áá¯ážáá±á¬ááºáááºá12 á¡áá»ááºá¡ááºáẠ: áá±á¬ááºáá¯á¶ážáá¯á¶ááẠáá áºáá¯áááºážáá±á¬ commit áá áºáá¯ááŸáá·áº áá»áááºáááºáá¬ážááááºááŒá áºáá±á¬ááŒá±á¬áá·áºá áááºážááᯠááŒá¯áá¯ááºááẠáááŒá áºááá¯ááºáá«ágit checkout
áááá¬ážáá»á°ážááœááºááŒááºážá -
.git
áá¯á¶áá¡ááœááºá¡á á¬ážááᯠááá¯ážá á±ááẠ(ááá¯ááºááŒá®ážáá»á¬ážááᯠáá áºááŒáááºááá·áºááœááºážááŒá®ážáá±á¬áẠáá»ááºááá¯ááºááŒááºážááŒá±á¬áá·áº ááá¯ááŸá±á¬ááºááŸá¯ááŸá¬ ááŒá®ážáá¬ážááá¯ááºáááº)á áááºááŸááºáá¬ážáá±á¬ commit áá áºáá¯ááŸáá·áºáᬠáááºá ááºáá±ááá·áº work-tree á¡ááœááºá¡á á¬ážááẠGit ááŸá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá áááá¯ááºážá¡áá±á«áºááœáẠáá°áááºáááºááá¯ááºáá«á á€ááá á¹á ááœááºáá¯ááŸá áº, áááºáá±á¬ááºážááŸáá·áºáá±á¬ááºáááºááœá²áááºááŸá¬ážáá±áž.git
áá±á¬ááºáá¯á¶ážáá¯á¶á០á¡áá¯ááºááá¯ááºáá«- áá¯ááºáá¯á¶ááẠá¡ááá¯á¡ááœáŸá¬áá áºáᯠáááŸááá²ááŒá áºááẠ- á€áááºááŸá¬ Docker á¡áá¯ááºáá¯ááºáá¯á¶ááŒá áºáááºá - áá°áá®áá±á¬áááááááºááá¯áááºáá±á¬ááºáá±áá±á¬áºáááºáž ááá°áá®áá±á¬á¡áá¯ááº-áá
áºáááºáá»á¬ážááŸááẠDocker ááẠáááá¯á¡ááºáá±á¬ááŒááºáááºáááºáá±á¬ááºááŸá¯ááá¯á
áááºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá GitLab ááẠáá®ážááŒá¬áž cloned directory áá»á¬ážááᯠáááºáá®ážáááºá
/home/gitlab-runner/builds/HASH/[0-N]/yourproject
parallel assembly ááá¯ááœáá·áºáá±á¬á¡áá«á á¡ááá¯áá±á¬ááºážááŒááºáááºá á¯áá±ážááŸá¯áááºážááœáŸááºááá¯áá²á·á¡áá»ááºááá¯ááŒá±á¬áá·áºááŒá áºáááá·áºáááºá.git
áá°áá®áá±á¬ commit ááá¯áááºáá±á¬ááºáá¬ážáá±á¬áºáááºáž áá°áá®áá±á¬ repository á ááá°áá®áá±á¬ cloned áá¬ážááŸááºážáá»á¬ážááœáẠááá°áá®áá«á
áá±á¬ááºáá¯á¶ážá¡áá»ááºááŸá¬ werf ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá«ááœááºáááºážá¡áá»áá¯ážáááºáá»á¬ážááŸááááºá Werf ááẠá¡áá»áá¯á·áá±á¬ command áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«ááœáẠáááºáá±á¬ááºáá¬ážáá±á¬ cache ááŸááá±ááẠááá¯á¡ááºááẠ(á¥ááá¬á werf deploy
) á€á¡áááá·áºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±á¬á¡áá«á werf ááẠáááºááŸááºáá¬ážáá±á¬ áá¯á¶áá»á¬ážá¡ááœáẠá¡ááá·áºáááºááŸááºáá»á¬ážááᯠááœááºáá»ááºáááºá werf.yaml
ááŸáá·áº áááºážááá¯á·ááẠassembly cache ááœááºááŸááááẠ- ááá¯ááºáá«á command ááẠáááºáááºáá¯ááºáá±á¬ááºááá¯ááºáá±á¬á·ááẠááá¯ááºáá«á áá¬ááºáá¯á¶áááºááŸááºááŸáááẠá¡ááŒá±á¬ááºážá¡áá¬áá±á«áº áá°áááºáááºá .git
ááá¯á·áá±á¬áẠáá»áœááºá¯ááºááá¯á·ááẠááááºááá¯ááºáá±á¬ááá¯ááºáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡ááœáẠááááºáááŒáááºááŒá
áºáá±á¬ áááºááŸáºáá
áºáá¯ááᯠáááŸáááŒá®áž werf ááẠááá¯ááá¯á·áá±á¬ááŒá®ážááŒááºááŸá¯ááᯠááœáá·áºááœáŸááºááá¯ááºáááºááá¯áẠ(á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážá¡ááœáẠááŒáá·áºáá«á
ááŒá¯á¶áá¯á¶ ááá¯á¡ááºáá±á¬ááá¯ááºá¡áá»áá¯á·ááá¯áá¬ááá·áºáá«á ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááŸáááá·áº ADD
áááºááá¯á·áááºááá¯á
á± áá±ážáá¬ážáá±á¬á
á¬á áááá±á¬ááºááŸá¯ááŸáá·áº áá¯á¶ááŒááºá
áááºáá»áááŸá¯ááᯠááá¯ážá
á±áááºá Dockerfile
ááŸáá·áº á€á¡ááœáẠá
á¯áá±á¬ááºážáá¬ážáá±á¬ cache á áááºááŒáááºááŸá¯ááá¯áááºáž ááá¯ážáááºá
á±áááºá Dockerfile
Git ááœáẠááááºááá¯ááºáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡ááœááº
ááááº
áááá»áá±á¬ááá¯á¡ááºáá»ááºáá»á¬ážá¡ááœáẠáá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáááºáá±á¬ááºáá°ááá¯áá±ážáá¬ážááẠáá»áœááºá¯ááºááá¯á·ááááŠážáááºážááŒá±á¬ááºážááẠáááºáá²á ááá¯ážáá¬ážááŒá®áž ááá¯ážááŸááºážáá«áááº- á ᶠDockerfile áááááºááœáẠáá»áá¯ááºážáá±á¬ááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡á á¬ážá áá»áœááºá¯ááºááá¯á·áááŒá±ááŸááºážáá»ááºááᯠá áááºááŒáá¯áẠsyntax ááŒáá·áº áá±ážáá¬ážáá²á·áááºá áááºážááœááºáááºážáá¡á¬ážáá¬áá»ááºáá»á¬ážááŸááááº- Stapel á á¯áá±á¬ááºážáá°áááºáááºážááá¯ááºáááºážáá¬áááºááá¯áá±á¬ááºážá áœá¬ááá¯ááºááœááºááŒá±ááŸááºážáááºá
ááá¯á·áá±á¬áºá áá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáááºáá±á¬ááºáá°áá±ážáá¬ážááá·áºáá¯ááºáááºážá ááºááœááºá ááŸáááŒá®ážáá¬áž Dockerfiles áá»á¬ážá¡ááœáẠáá¶á·ááá¯ážááŸá¯á¡á¬áž áá»áœááºá¯ááºááá¯á·áá»ááºááœááºááŒá¯ááœá¬ážáá«áááºá á€áá»áá¯á·ááœááºážáá»ááºááᯠááá¯á¡áá« ááŒá¯ááŒááºááŒá®ážááŒá áºááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠááŒáá·áºáá±áá¬ážáá±á¬ á ááºážáá±ážááœá²á¡ááœáẠáá»áœááºá¯ááºááá¯á·á á áááºááŒáá¯áẠStapel áááºáá±á¬ááºáá°ááŸáá·áº Kubernetes (ááá¯ááá¯áááºááŸá¬ kaniko ááœáẠááŒá¯áá¯ááºáá¬ážááá·áºá¡ááá¯ááºáž Kubernetes á¡ááœááºážááŸá á¡ááŒá±ážááá¬ážáá»á¬ážá¡ááœáẠá ááºážáá±ážááœá²á¡ááœáẠá ááºážáá±ážááœá²á¡ááœááº) ááŸáá·áº áá»áœááºá¯ááºááá¯á·á á áááºááŒáá¯áẠStapel áááºáá±á¬ááºáá°ááŸáá·áºá¡áá° áá¯ááºáá±á¬ááºááẠá á®á ááºáá¬ážáá«áááºá
áá«ááŒá±á¬áá·áº ááá·áºááŸá¬ Dockerfiles ááŸá
áºáᯠáá¯ááºááááºááŸááá±áááº... ááŒáá¯ážá
á¬ážááŒáá·áºáá«
PS List of documentation áá±á«ááºážá ááºááœááº
-
á¡ááŒááºá áááºááẠáááºážááœáŸááºáá»ááºáá»á¬áž ; -
dockerfile áááºáá±á¬ááºáá°ááœá²á·á ááºážáá¯á¶áá»á¬áž ; -
werf ááœáẠá¡ááá·áºáá»á¬áž áááááᬠ; -
áá¯ááºáá¯á¶áá¯ááºáá±ááŒááºážáá¯ááºáááºážá áẠ; -
Kubernetes ááŒáá·áºáá»ááºááŸá¯ áá¯ááºáááºážá ááºááŸáá·áº áá±á«ááºážá ááºááŒááºážá ; -
ááá·áºááŸááºážáá±ážáá¯ááºáááºážá áẠ; -
Dockerfile á¡ááœááºá¡ááŒá¬ážááœá±ážáá»ááºá áá¬á¡ááŒá ẠStapel builder .
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá« - "
source: www.habr.com