ืื ื ืืฆืืข ืืงืจืื ืืช ืชืืืื ืืื"ื ืฉื ืืืืกื ืืจ ืกืืืืฆ'ื ื-Inventos "ืชืืืื ืคืืชืื ืืืืืงื ืขื Docker + Gitlab CI"
ืื ืฉืจืง ืืชืืื ืืืืฉื ืืช ืชืืืื ืืคืืชืื ืืืืืืงื ืืืืืกืก ืขื Docker + Gitlab CI ืฉืืื ืืขืชืื ืงืจืืืืช ืฉืืืืช ืืกืืกืืืช. ืืืคื ืืืชืืื? ืืื ืืืจืื? ืืื ืืืืืง?
ืืื ืื ืืื ืืืืืื ืฉืืื ืืืืจ ืืฆืืจื ืืืื ืืช ืขื ืชืืืื ืืคืืชืื ืืืืืืงื ืืืืฆืขืืช Docker ื- Gitlab CI. ืืื"ื ืขืฆืื ืืื ื-2017. ืื ื ืืืฉื ืฉืืืืื ืืื ืืชื ืืืื ืืืืื ืืช ืืืกืืืืช, ืืืชืืืืืืืื, ืืจืขืืื, ืื ืืกืืื ืฉื ืืฉืืืืฉ.
ืืื ืืืคืช, ืืืงืฉื ืืชืืช ืืืชืื.
ืฉืื ืืืืกื ืืจ ืกืืืืฆ'ื. ืื ื ืขืืื ืขืืืจ Inventos. ืืกืคืจ ืืื ืขื ืื ืืกืืื ืฉืื ืืฉืืืืฉ ื-Docker ืืืืฆื ืื ื ืืืืฉืืื ืืืชื ืืืืจืื ืืคืจืืืงืืื ืืืืจื.
ื ืืฉื ืืืฆืืช: ืชืืืื ืคืืชืื ืืืืฆืขืืช Docker ื-Gitlab CI.
ืื ืืืจืฆืื ืืฉื ืืื ืฉืื ืขื ืืืงืจ. ืืืื ืืืื ืืจืืฉืื, ืืฉืชืืฉื ื ืจืง ื-Docker ืืคืืชืื ืืืืื ืืช ืืคืชืืื. ืืกืคืจ ืืขืืืืื ืฉืืฉืชืืฉื ื-Docker ืืื ื-2-3 ืื ืฉืื. ืืื ืืื ื ืฆืืจ ื ืืกืืื ืืืชืงืืื ื ืขืื ืงืฆืช. ืงืืฉืืจ ืื ืฉืื ื
ืื ืืืื ืืืื ืืื? ื ืฉืชืฃ ืืช ืื ืืกืืื ืฉืื ื ืืืื ืืืื ืืจืืคื ืืกืคื ื, ืืืื ืืขืืืช ืคืชืจื ื. ืื ืืื ืืงืื ืื ืืื ืืคื, ืืื ืืคืฉืจ ืืืืฉืื ืืืื.
ืืืืื ืฉืื ื ืืื: ืขืื ืื ืื ืฉืื ืื ื ืืืืืื ืืฉืื ืขืืื ืืช ืืื.
ืืืื ืืขืืืช ืื ืื ื ืคืืชืจืื?
ืืืฉืจ ืืฉื ื ืืกืคืจ ืฆืืืชืื ืืืืจื, ืืืชืื ืช ืืื ืืฉืื ืืฉืืชืฃ. ืืฉื ื ืฉืืืื ืฉืืื ืืชืื ืช ื ืฉืืฃ ืืคืจืืืงื ืืื ืื ืืชื ืืืื ืื ืืคืจืืืงื ืืืจ.
ืืื ืฉืืืชืื ืช ืืืื ืืืืืจืืช, ืืื ืฆืจืื ืืืืจืื ืืช ืงืื ืืืงืืจ ืฉื ืืคืจืืืงื ืืืืคืขืื ืืช ืืกืืืื ืืืงืื ืืืคืฉืจื, ืื ืฉืืืคืฉืจ ืื ืืืชืงืื ืืืื ืืคืชืจืื ืืืขืืืช ืฉื ืืคืจืืืงื ืืื.
ืืืจื ืืื, ืื ืืชืืืืื ืืืคืก, ืื ืืฉ ืืขื ืชืืขืื ืืคืจืืืงื. ืืืืข ืขื ืืืคื ืืืืืจื ืืืื ืจืง ืืืฉืชืืฉืื ืืชืืงืื. ืขืืืืื ืืงืืืื ืืช ืืงืื ืขืืืืชื ืืขืฆืื ืชืื ืืื ืื ืืืืืื. ืืื ืืืืืฅ ืืช ืื, ืืฉืชืืฉื ื ื-Docker.
ืืกืืื ืืืื ืืื ืกืื ืืจืืืืฆืื ืฉื ืืืืจืืช ืืคืืชืื. ืื ืืกืืื ื, ืืคืชืืื ืชืืื ืืืงืืื ืืืืื. ืืื ืืงืจื ืืืืฉื, ื ืื ืก ืืืืืื ืืืชืื ืืืฉืืช, ืืืฉื, vasya.dev. ืืืื ืืืฉืืช ืฉืื ืชื Petya, ืฉืืชืืื ืฉืื ืืื petya.dev. ืื ืืคืชืืื ืืชืจ ืืื ืืจื ื ืื ืจืืื ืืืฉืื ืฉื ืืืขืจืืช ืืืืฆืขืืช ืฉื ืืืืืืื ืืื.
ืืืฉืจ ืืืขืจืืช ืืืื ืืฉืืืช ืืืืืืื ืื ืืืื ืืชืืืืื ืืืืื ืก ืืชืฆืืจืืช, ื ืืฆืจืช ืืชื ืืฉืืช ืกืืืืช ืคืืชืื ืื ืชืื ืืืชืจ ื ืืชื ืืืืฉ.
ืืืชื ืืืจ ืงืืจื ืขื ืืืืจืืช ืืกื ื ืชืื ืื. ืืืฉืื ืื ืืชืขืกืง ืืืืืื ืืขืืื ืขื ืกืืกืืช ืฉืืจืฉ ืจืืงื. ืืฉืื ืืืชืงื ื, MySQL ืืืงืฉื ืืืืฉืื ืกืืกืื ืืืชืืจืจ ืฉืืกืืกืื ืืื 123. ืืขืชืื ืงืจืืืืช ืงืืจื ืฉืชืฆืืจืช ืืกื ืื ืชืื ืื ืืฉืชื ื ืื ืืืื ืืืชืื ื-commit ืฉื ืืืคืชื. ืืืฉืื ืชืืงื, ืืืฉืื ืื ืชืืงื ืืช ืืชืฆืืจื. ืืื ืืจืืงืื ืืฉืืืฆืื ื ืืืืืฉืื ืชืฆืืจืช ืืืืงื .gitignore
ืืื ืืคืชื ืืื ืฆืจืื ืืืชืงืื ืืช ืืกื ืื ืชืื ืื. ืื ืืงืฉื ืขื ืืืชืืื. ืืฉ ืฆืืจื, ืืื ืืืชืจ, ืืืืืจ ืขื ืืกื ืื ืชืื ืื. ืืฉ ืืืชืื ืืช ืืกื ืื ืชืื ืื, ืืืืื ืกืืกืื, ืืจืฉืื ืืฉืชืืฉ, ืืืฆืืจ ืืืื ืืืืืื.
ืืขืื ื ืืกืคืช ืืื ืืจืกืืืช ืฉืื ืืช ืฉื ืกืคืจืืืช. ืืขืชืื ืงืจืืืืช ืงืืจื ืฉืืคืชื ืขืืื ืขื ืคืจืืืงืืื ืฉืื ืื. ืืฉ ืคืจืืืงื Legacy ืฉืืื ืืคื ื ืืืฉ ืฉื ืื (ืืฉื ืช 2017 - ืืขืจื ืขืืจื). ืืืื ืืืฉืงื, ืืชืืื ื ืขื MySQL 5.5. ืืฉื ื ืื ืคืจืืืงืืื ืืืืจื ืืื ืฉืืื ืื ื ืื ืกืื ืืืืฉื ืืจืกืืืช ืืืืจื ืืืช ืืืชืจ ืฉื MySQL, ืืืฉื, 5.7 ืืืขืื (ื-2017 - ืืขืจื ืืขืจื)
ืื ืื ืฉืขืืื ืขื MySQL ืืืืข ืฉืกืคืจืืืช ืืื ืืืืืืช ืขืื ืชืืืช. ืื ืื ืืขืืืชื ืืืคืขืื 2 ืืกืืกืื ืืืื. ืืคืืืช, ืืงืืืืช ืืฉื ืื ืื ืืขืืืชืืื ืืืชืืืจ ืืืกื ืื ืชืื ืื ืืืืฉ. ืื ืืชืืจื ืืืฆืจ ืืื ืืขืืืช.
ืืืขืื ืืืื ืืื ืืืฉืจ ืืคืชื ืขืืื ืขื ืืืฉื ืืงืืื, ืืื ืืฉืชืืฉ ืืืฉืืืื ืืงืืืืื, ืงืืฆืื ืืงืืืืื, RAM ืืงืืื. ืื ืืื ืืจืืงืฆืื ืืืื ืคืืชืื ืคืชืจืื ืืืขืืืช ืืชืืฆืขืช ืืืกืืจืช ืืขืืืื ืฉืืื ืขืืืืช ืขื ืืืื ื ืืืช. ืืืืื ืืื ืืืฉืจ ืืฉ ืื ื ืฉืจืชื ืืืืจื ื-Production 3, ืืืืคืชื ืฉืืืจ ืงืืฆืื ืืกืคืจืืืช ืืฉืืจืฉ ืืืฉื nginx ืืืงื ืงืืฆืื ืืื ืืืืื ืืืงืฉื. ืืฉืงืื ืืื ื ืื ืก ื-Production, ืืกืชืืจ ืฉืืงืืืฅ ืงืืื ืืืื ื-3 ืืฉืจืชืื.
ืืืืืื ืฉื ืฉืืจืืชื ืืืืงืจื ืืชืคืชื ืืขืช. ืืืฉืจ ืื ื ืืืืงืื ืืช ืืืคืืืงืฆืืืช ืืืืืืืช ืฉืื ื ืืืื ืจืืืืื ืงืื ืื ืืืงืืืืื ืืื ืืจืืงืฆืื ืื ืขื ืื. ืื ืืืคืฉืจ ืื ืืืืืจ ืืื ืืืืืืืช ืขืืืจ ืขืจืืื ืืกืืืืช ืฉื ืืฉืืืืช. ืื ืื ืืืคืฉืจ ืื ืืืืืง ืขืืืื ืืืืจืืืช ืืื ืืคืชืืื.
ืืืคืชื ืคืจืื ืื ื, ืืืคืชื ื-JS, ืืื ืืืขื ืืฉืคืขื ืขื Backend. ืืคืชื ืืงืฆื ืืืืืจื, ืืชืืจื, ืืคืชื, ืืืงืจื ืฉืื ื, Ruby on Rails ืืืื ื ืืคืจืืข ืืคืจืื ืื ื. ืืืื ืืจืืงืฆืื ืืชืืฆืขืช ืืืืฆืขืืช ื-API.
ืืืื ืืก, ืืขืืจืช Docker, ืืฆืืื ื ืืืืืจ ืืฉืืืื ื-Staging. ืื ืคืจืืืงื, ืืฉื ืืคืจื ืฉืื, ืืจืฉ ืืืืจืืช ืืกืืืืืช. ืืืืื ื ืคืืืืช, ืืื ืฆืืจื ืืืงืฆืืช ืื ืฉืจืช ืืืจืืืืื ืืืืืืืจ ืืืชื ืื ืคืจื, ืื ืืฉืชืฃ ืืืืืฉืื ืกืืืื ืืฉืชื ืืช ืืคืจืืืงืืื ืืืืืื, ืืืชืื ืืืจืกื ืฉื ืืกืคืจืืืช, ืืืฉืคืืข ืื ืขื ืื.
ืืืื. ืืื ืื ืื ื ืืฉืชืืฉืื?
- ืืืงืจ ืขืฆืื. ื-Dockerfile ืืชืืจ ืืช ืืชืืืช ืฉื ืืืฉืื ืืืื.
- Docker-compose ืืื ืืืืื ืืืืืืช ืืื ืืืืฉืืื Docker ืฉืื ื.
- ืื ื ืืฉืชืืฉืื ื-GitLab ืืื ืืืืกื ืืช ืงืื ืืืงืืจ.
- ืื ื ืืฉืชืืฉืื ื-GitLab-CI ืืฉืืืื ืืขืจืืืช.
ืืื"ื ืืืจืื ืืฉื ื ืืืงืื.
ืืืืง ืืจืืฉืื ืืืืจ ืขื ืืื Docker ืืืคืขื ืขื ืืืื ืืช ืฉื ืืคืชืืื.
ืืืืง ืืฉื ื ืืืืจ ืขื ืืื ืืืฆืืจ ืืื ืืจืืงืฆืื ืขื GitLab, ืืื ืื ืื ื ืืจืืฆืื ืืืืงืืช ืืืื ืื ืื ื ืืชืืืืืื ื-Staging.
Docker ืืื ืืื ืืืืืื ืืืืคืฉืจืช (ืืืืฆืขืืช ืืืฉื ืืฆืืจืชืืช) ืืชืืจ ืืช ืืจืืืืื ืืืจืืฉืื. ืืื Dockerfile ืืืืืื. ืืื ืื ื ืืฆืืืจืื ืฉืื ื ืืืจืฉืื ืืืชืืื ื ืืจืฉืืืช ืฉื Ruby:2.3.0 Docker. ืืื ืืืื Ruby ืืจืกื 2.3 ืืืชืงื ืช. ืื ื ืืชืงืื ืื ืืช ืกืคืจืืืช ืืื ืืื ืื ืืจืฉืืช ืืืช NodeJS. ืื ื ืืชืืจืื ืฉืื ื ืืืฆืจืื ืกืคืจืืื /app
. ืืืืจ ืืช ืกืคืจืืืช ืืืคืืืงืฆืื ืืกืคืจืืืช ืืขืืืื. ืืกืคืจืืื ืื ืื ื ืื ืืืื ืืช Gemfile ืืืื ืืืื ืื ืืจืฉ ืืืช Gemfile.lock. ืืืืจ ืืื ืื ื ืืื ืื ืืช ืืคืจืืืงืืื ืืืชืงืื ืื ืชืืื ืช ืชืืืช ืื. ืื ื ืืฆืืื ืื ืฉืืืืืื ืชืืื ืืืื ื ืืืืื ื ืืืฆืืื ืืืฆืื ืืช 3000. ืืคืงืืื ืืืืจืื ื ืืื ืืคืงืืื ืฉืืคืขืืื ืืฉืืจืืช ืืช ืืืคืืืงืฆืื ืฉืื ื. ืื ื ืืฆืข ืืช ืคืงืืืช ืืชืื ืฉื ืืคืจืืืงื, ืืืคืืืงืฆืื ืชื ืกื ืืืคืขืื ืืืืคืขืื ืืช ืืคืงืืื ืฉืฆืืื ื.
ืืืื ืืืืื ืืื ืืืืืช ืืงืืืฅ docker-compose. ืืืงืจื ืื, ืื ื ืืจืืื ืฉืืฉ ืงืฉืจ ืืื ืฉื ื ืืืืืืช. ืื ืืฉืืจืืช ืืชืื ืฉืืจืืช ืืกื ืื ืชืื ืื ืืฉืืจืืช ืืืื ืืจื ื. ืืืฉืืื ืืืื ืืจื ื ืฉืื ื ืืืจืฉืื ืืจืื ืืืงืจืื ืกืื ืฉื ืืกื ื ืชืื ืื ืืชืืจ ืงืฆื ืขืืจืคื ืืืืกืื ื ืชืื ืื. ืืืืืื ืฉืื ื ืืฉืชืืฉืื ื-MySQL, ืืืืืื ืืื ืขื MySQL - ืืื ืฉืื ืืืจ ืื ืืื ืข ืืืืชื ื ืืืฉืชืืฉ ืืืกื ื ืชืื ืื ืืืจ (PostgreSQL, Redis).
ืื ื ืืืงืืื ืืืืงืืจ ืืจืฉืื ืืืจืื Docker ืืช ืืชืืื ื ืฉื MySQL 5.7.14 ืืื ืฉืื ืืืื. ืื ื ืืืกืคืื ืืช ืืชืืื ื ืืืืจืืืช ืืืืฉืื ืืืื ืืจื ื ืฉืื ื ืืืกืคืจืืื ืื ืืืืืช. ืืื ืืืกืฃ ืขืืืจื ื ืชืืื ื ืืืืื ืืืฉืงื ืืจืืฉืื ื. ืืืืจ ืืื ืืื ืืจืืฅ ืืช ืืคืงืืื ืฉืื ื ืืืฆืขืื ืืื. ืื ื ืืืืจ ืืืืจื, ื ืจืื ืฉืืืืืจื ืคืงืืืช ืืืฉืงื ืืจื Puma. ืคืืื ืืื ืฉืืจืืช ืฉื ืืชื ืืจืืื. ืืืงืจื ืืฉื ื, ืื ื ืขืืงืคืื. ืคืงืืื ืื ืืืืื ืืืืืช ืฉืจืืจืืชืืช ืืืชืื ืืฆืจืืื ืื ืืืฉืืืืช ืฉืื ื.
ืื ื ืืชืืจืื ืื ืฉืขืืื ื ืืืขืืืจ ืืฆืืื ืืืืฉื ืืืืจื ืืืคืชื ืฉืื ื ื-3000 ื-3000 ืืืฆืืืช ืืืืืื. ืื ื ืขืฉื ืืืืคื ืืืืืืื ืืืืฆืขืืช iptables ืืืื ืื ืื ืฉืื, ืืืืืืข ืืฉืืจืืช ื-Docker.
ืืืคืชื ืืืื ืื, ืืื ืงืืื, ืืืฉืช ืืื ืืชืืืช IP ืืืื ื, ืืืืืื, 127.0.0.1 ืืื ืืชืืืช ื-IP ืืืงืืืืช ืื ืืืืฆืื ืืช ืฉื ืืืืฉื.
ืืฉืืจื ืืืืจืื ื ืืืืจืช ืฉืืืื ืืืื ืืจื ื ืชืืื ืืืืื db. ืืืฉืจ ืื ื ืงืืจืืื ืืืชืืื ืฉื ืงืื ืืืื ืจ ืืืื ืืจื ื, docker-compose ืืชืืื ืชืืืื ืืช ืืกื ืื ืชืื ืื ืขืืืจื ื. ืืืจ ืืชืืืืช ืืืืืจ (ืืืขืฉื, ืืืืจ ืืฉืงืช ืืงืื ืืืื ืจ! ืื ืื ืืืืื ืืช ืืืื ืืช ืืืืืจ) ืชืคืขืื ืืช ืืืคืืืงืฆืื, ื-backend ืฉืื ื.
ืื ืืื ืข ืฉืืืืืช ืืืฉืจ ืืกื ืื ืชืื ืื ืืื ื ืคืืขื ืืืืกื ืืฉืืืื ืืืฉืจ ืื ื ืขืืฆืจืื ืืช ืืืื ืืกื ืื ืชืื ืื, ืืืื ืืฉืืจืจ ืืฉืืืื ืขืืืจ ืคืจืืืงืืื ืืืจืื.
ืื ื ืืชื ืื ื ืืช ืืฉืืืืฉ ืืขืืืื ืืกื ื ืชืื ืื ืืคืจืืืงื. ืื ื ืืชืงื ืื ืืช ืืืจืกื ืฉื MySQL ืขืืืจ ืื ืืืคืชืืื. ืื ืืื ืข ืืื ืฉืืืืืช ืฉืขืืืืืช ืืืชืจืืฉ ืืืฉืจ ืืจืกืืืช ืฉืื ืืช, ืืืฉืจ ืืชืืืืจ, ืืชืฆืืจื, ืืืืจืืช ืืจืืจืช ืืืืื ืืฉืชื ืืช. ืื ืืืคืฉืจ ืื ืืฆืืื ืฉื ืืืจื ื ืคืืฅ ืขืืืจ ืืกื ืื ืชืื ืื, ืื ืืกื, ืกืืกืื. ืื ืื ื ืืชืจืืงืื ืืื ืืืืืช ืฉื ืืฉืืืช ืืืงืื ืคืืืงืืื ืืงืืฆื ืืชืฆืืจื ืฉืืื ืื ื ืงืืื.
ืืฉ ืื ื ืืืืื ืืช ืืืฉืชืืฉ ืืชืฆืืจื ืืืคืืืืืืช ืืืชืจ ืขืืืจ ืกืืืืช ืืคืืชืื, ืฉืชืืื ืฉืื ื ืืืจืืจืช ืืืืื. MySQL ืืืืืจ ืขืืืจ ืืืื ืืช ืืืฉืืช ืืืจืืจืช ืืืื ืืืืืฆืืขืื ืฉืื ืืืืฅ ืืงืืคืกื ืืจืืขืื ืืืื.
Docker ืืืคืฉืจ ืื ืืืฉืชืืฉ ืืืชืืจืืื Python, Ruby, NodeJS, PHP ืฉื ืืืจืกื ืืจืฆืืื. ืื ืื ื ื ืคืืจืื ืืืฆืืจื ืืืฉืชืืฉ ืืื ืื ืืจืกืืืช ืืืฉืื. ืืขืืจ, ืจืืื ืืฉืชืืฉ ืืืืืืช rpm ืฉืืคืฉืจื ืื ืืฉื ืืช ืืช ืืืจืกื ืืืชืื ืืคืจืืืงื. ืื ืื ืืืคืฉืจ, ืืืืืช ืืงืื ืืืื ืจ ืฉื Docker, ืืืขืืืจ ืืฆืืจื ืืืงื ืืช ืืงืื ืืืืจืก ืืืชื ืืื ืขื ืชืืืช. ืืื ืื ื ืืขืื ืืืืื ืืช ืืืจืกื ืฉื ืืืชืืจืืื ืืื ืฉื ืืงืื. ืืื ืืขืืื ืืช ืืืจืกื, ืืืจืืื ืืช ืืืืื ืืืฉื ืืืขืื ืืช ืืืืื ืืืืฉ. ืื ืืฉืื ืืฉืชืืฉ, ื ืืื ืืืืจืื ืืช ืืืืื ืืืืฉ, ืืืขืืืช ืืช ืืืืื ืืืฉื.
ืืืืจ ืื ืืืช ืืชืืื ื, ืืืืืืืช ืื ืืคืืชืื ืืื ืืืคืงื ืืืื ืืืื. ืื ื ืืื ืืืืืื ืขืืืจ ืืชืงื ืืช ืืืืืืช.
ื-Frontend ืื ื ืืฉืชืืฉืื ื-JavaScipt ืื-NodeJS.
ืขืืฉืื ืืฉ ืื ื ืืช ืืคืจืืืงื ืืืืจืื ื-ReacJS. ืืืื ืืจืืฅ ืืช ืืื ืืืืื ืืคืืชื ืืืืฆืขืืช Hot-Reload.
ืืืืจ ืืื, ืืฉืืืช ืืืจืืื ืฉื JavaScipt ืืืคืขืืช ืืืงืื ืืงืืืคืืืฆืื ืืกืืืืงื ื ืืชื ืืืืฆืขืืช ืืฉืืื ืฉืืืจืช nginx.
ืืื ื ืชืชื ืืช ืืชืืื ืืช ืฉื ืืคืจืืืงื ืืืืจืื ืฉืื ื.
ืืืื ืืฉืืืืช ื ืคืชืจื? ืืื ืื ื ืฆืืจื ืืื ืืช ืืขืจืืช ืฉืืืชื ืืืฉืืจืื ื ืืืืื ืืชืงืฉืจืื. ืื ืืงืืืื ื ืชืื ืื. ืืคืฉืจืืช ืืืช ืืื ืืฉืืื ืืืืขืืช ืืืืคื ืืืืฉืืจ ืื.
ืื ืขืฉืื ื ืืฉืืื ืื?
ืืืืงื ื ืืืคืืืงืฆืื ืจืืืืื ืืื: ืืืง ืื ืืืื ื-JS, ื-backend, ืฉืขืืื ืืจื ืืืฉืง REST ืชืืช Ruby on Rails. ืืงืฆื ืืืืืจื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืืกื ืื ืชืื ืื. ืืชืืฆืื ืฉื ืืฆืจืช ื ืืชื ืช ืืืงืื. ืคืื ื ืื ืืืื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืืงืฆื ืืืืืจื ืืืกื ืื ืชืื ืื ืืืืฆืขืืช ืืืฉืง REST.
ืืื ืื ื ืื ืฆืืจื ืืฉืืื ืืืืขืืช ืืืืคื. ืืคื ื ืื, ืืื ืื ื ืคืจืืืงื ืฉืืืืืข ืื ืื ืื ืฉืืืจืื ืขื ืืขืืจืช ืืืืขืืช ืืคืืืคืืจืืืช ื ืืืืืช.
ืคืืชืื ื ืืช ืืกืืืื ืืืื: ืืคืขืื ืืืืคืืคื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืคืื ื ืื ืืืื, ืคืื ื ืื ืืืื ืืงืืื ืืื ืืจืืงืฆืื ืขื ืืงืฆื ืืขืืจืคื, ืืืฉืืื ืืื ืืฉืืื ืืืืขืืช Push.
ืืืืขืืช ืืืืคื ืืงืืืืืช ืืื ืืจืืงืฆืื ืขื ืจืืื ืืืจ ืฉืืืืฉื ื-NodeJS.
ื ืื ืื ืชืืจืื ืืื ื ืฉืืืืช ืืืืขืืช ืืืชืื ืืื ืื ืื ืฉืืื.
ืฉื ื ืืืืจื ืืืืข ืืฆืืืจืื ืืื. ืืจืืข, ืืขืืจืช Docker, ืื ื ืืฉืชืืฉืื ื-2 ืืกืื ื ืชืื ืื ืขืฆืืืืื ืฉืืื ื ืงืฉืืจืื ืื ืืื ืืฉืื ืฆืืจื. ืื ืืกืฃ, ืืฉ ืืื ืจืฉืช ืืืจืืืืืืช ืืฉืืชืคืช, ืื ืชืื ืื ืคืืืืื ืืืืืกื ืื ืืกืคืจืืืช ืฉืื ืืช ืืืืฉื ืฉื ืืืคืชื.
ืืืชื ืืืจ ืืื ืืืกืคืจืื. ืื ืืืงืื ืฉืื ืฉืืืืฉ ืืืืจ ืืงืื ืืฉืื.
ืื ืงืืื ืืื ืืืืจื ื ืขื ืฉืืืืฉ ืืืืจ ืืงืื ืืฆืืจื ืฉื ืกืคืจืืืช, ืื ืืืืืื ืื, ืืฉืืจืืช ืฉืื ื ืฉืืืื ืืืืืขืืช Push ื ืขืฉื ืฉืืืืฉ ืืืืจ ืืฉืจืช ืฉืื. ืื ืืกืคืง API. ืืืคืืชืื ืืืืฉ ืฉืื ื ืืืจ ืืชืงืฉืจ ืืืชื.
ืืืืชื ืืื, ืืฉืชืืฉื ื ืืืจืกื 4 ืฉื NodeJS. ืืขืช (ืืฉื ืช 2017 - ืืขืจื ืืขืจื) ืืืชืคืชืืืืืช ืืืืจืื ืืช ืื ื ืืฉืชืืฉืื ืืืจืกื 7 ืฉื NodeJS. ืืื ืืขืื ืืจืืืืื ืืืฉืื ืืขืจื ืืจืกืืืช ืืืฉืืช ืฉื ืกืคืจืืืช.
ืืืืืช ืืฆืืจื, ืชืืื ืืฉื ืืช ืืืืขืืืช ืืช ืืจืกืช ื-NodeJS ืืฉืืจืืช ืืืืืขืืช Push.
ืืื ื ืืื ืืฉืืืจ ืขื ืชืืืืืช API, ืื ื ืืชื ืืืื ืืืืืืฃ ืืืชื ืืคืจืืืงืืื ืืืจืื ืฉืืื ืืฉืืืืฉ ืืขืืจ.
ืื ืืชื ืฆืจืื ืืื ืืืืกืืฃ Docker? ืื ื ืืืกืืคืื Dockerfile ืืืืืจ ืฉืื ื, ืฉืืชืืจ ืืช ืืชืืืช ืื ืืจืฉืช. ืืืืืื ืื, ืืจืืืืื ืืคืืจืงืื ืืืืคื ืืืื. ืืื ืืกื ืืืื ืืืื ืฉื ืืคืชื backend.
ืืขืช ืืฆืืจืช ืคืจืืืงื ืืืฉ, ืื ื ืืืฆืจืื Dockerfile, ืืชืืจืื ืืช ืืืขืจืืช ืืืงืืืืืืช ืืจืฆืืื (Python, Ruby, NodeJS). ื-docker-compose, ืืื ืืชืืจ ืืช ืืชืืืช ืืืจืืฉื - ืืกื ืื ืชืื ืื. ืื ืื ื ืืชืืจืื ืฉืื ืื ื ืฆืจืืืื ืืกื ื ืชืื ืื ืฉื ืืจืกื ืืื ืืืืจืช, ืืืืกื ืื ื ืชืื ืื ืฉื ืืฉื.
ืื ื ืืฉืชืืฉืื ืืืืื ืฉืืืฉื ื ืคืจื ืขื nginx ืืื ืืืืืฉ ืกืืื. ืืฉ ืืคืฉืจืืช ืืืขืืืช ืชืืื ืืช. Backend ืืื ืืก ืืืชื ืื ืคื ืืืื ืืจืืฉ, ืฉืื ืืื ืืืชืงื ืืืืื ืขื nginx, ืฉื ืืชื ืืช ืืกืืื.
ืืื ืืืืกื ืืช ืชืฆืืจืช nginx, mysql, ืืืกืคื ื ืชืืงืืืช Docker ืฉืื ืื ื ืืืืกื ืื ืืช ืืืืืจืืช ืืืจืืฉืืช. ืืืฉืจ ืืคืชื ืขืืฉื ืฉืืืื git ืฉื ืืืืจ ืืืืฉื ืฉืื, ืืืจ ืืฉ ืื ืคืจืืืงื ืืืื ืืคืืชืื ืืงืืื. ืืื ืฉืืื ืืืื ืืฆืืื ืื ืืืื ืืืืจืืช ืืืืื.
ืืืืจ ืืื, ืืฉ ืื ื ืืกืคืจ ืจืืืืื: ืืืืื, ืืื ืคืืจืืฆืื-API, ืืืืขืืช ืืืืคื.
ืืื ืืืชืืื ืืช ืื ืื, ืืฆืจื ื ืืืืจ ื ืืกืฃ, ืฉืงืจืื ื ืื dockerized-app. ืืจืืข ืื ื ืืฉืชืืฉืื ืืืกืคืจ ืืืืจืื ืืคื ื ืื ืจืืื. ืื ืคืฉืื ืฉืื ืื ืืืืื ื ืืืืืช - ื-GitLab ืื ื ืจืื ืืื ืชืืงืื, ืืื ืืืืฉื ืฉื ืืืคืชื, ืชืืงืื ืืคืจืืืงื ืกืคืฆืืคื. ืจืื ืืืช ืืืื ืื ืืจืืืืื ืฉืืฉืืืื.
ืืืื ืืืืื ืจืง ืืชืืื ืฉื ืืคืืืงืฆืื ืืขืืื ืช. ืื ื ืืืืืื ืืืื ืื ืืช ืกืคืจืืืช Docker, ืื ืื ื ืืืืืื ืืช ืืชืฆืืจืืช ืื ืืจืฉืืช ืืืื ืืจืืงืฆืืืช ืฉื ืื ืืจืืืืื. ืืฉ README.md ืฉืืชืืจ ืืงืฆืจื ืืืฆื ืืืคืขืื ืืช ืืคืจืืืงื.
ืืื ืืืื ื ืฉื ื ืงืืฆื docker-compose. ืื ื ืขืฉื ืขื ืื ืช ืืืืืช ืืกืืื ืืจืืฅ ืืฉืืืื. ืืืฉืจ ืืคืชื ืขืืื ืขื ืืืืื, ืืื ืื ืฆืจืื ืืืืขืืช ืืืืคื, ืืื ืคืฉืื ืืฉืืง ืงืืืฅ docker-compose ืืืืชืื, ืืืฉืื ื ืฉืืจ.
ืื ืืฉ ืฆืืจื ืืืื ืืืจืฆืื ืขื ืืืืขืืช ืืืืคื, ืืืคืขืืืช docker-compose.yaml ื-docker-compose-push.yaml.
ืืืืืื ืฉ-docker-compose.yaml ื-docker-compose-push.yaml ื ืืฆืืื ืืชืืงืืื, ื ืืฆืจืช ืืืืืืืืช ืจืฉืช ืืืจืืืืืืช ืืืช.
ืชืืืืจ ืืจืืืืื. ืืื ืงืืืฅ ืืชืงืื ืืืชืจ ืฉืืืจืื ืขื ืืืกืืฃ ืืจืืืืื. ืื ืืืืื ืืื? ืืื ืื ื ืืฆืืืื ืืช ืจืืื ืืืืืื.
ืืืื ืชืืื ืช Docker ืืืื ื ืืืจืืฅ nginx ืืืคืืืงืฆืื ืฉืืืืื ื ืืฉืงืข Docker. ืืื ืื, ืืืฉืจ ืงืื ืืืื ืจืื ืืืคืขืืื ืืืืืื, ืืื ืืืืื ืืืืฉ ืืช ืชืฆืืจืช ื-nginx. ืื ื ืืคืืฆืื ืืช ืืืืคืื ืืจืืืืื ืืคื ืฉืืืช ืืืืืื ืืจืื ืฉืืืฉืืช.
ืขืืืจ ืกืืืืช ืืคืืชืื, ืื ื ืืฉืชืืฉืื ืืืืืืื .dev - api.informer.dev. ืืืฉืืืื ืขื ืืืืืื .dev ืืืื ืื ืืืืฉื ืืืงืืื ืฉื ืืืคืชื.
ืืชืจ ืขื ืื, ืชืฆืืจืืช ืืืขืืจืืช ืืื ืคืจืืืงื ืืื ืืคืจืืืงืืื ืืืคืขืืื ืืื ืื ืืื ืืช.
ืืืืื ื ืืจืคืืช, ืืกืชืืจ ืฉืืืงืื ืืื ืืืคืืคื ืฉืื ื ืื ืืื ืืืฉืื ืฉืืืืฆืขืืชื ืื ื ืคืื ืื ืืืืื.
ืืืื ืฉืืืช ืืืืืืื ืงืืืข ืืืืื ืืืื ืืคื ืืช.
ืื ืืืื ืืืืืช nginx, ืฉื ืืชื ืืื ืื JS. ืื ืืืื ืืืืืช nginx, ืฉื ืืชื ืืช ื-API, ืื ืงืืฆืื ืกืืืืื, ืื ืืชื ืื ื-nginx ืืฆืืจื ืฉื ืืขืืืืช ืชืืื ืืช.
ืืชืจืฉืื ืืจืื ืฉืืงืื ืืืื ืจืื ืืืืืจืื ืืืืฆืขืืช ืจืฉืช ืืืจืืืืืืช ืืืืกืชืจืื ืืืืืจื ืคืจืืงืกื.
ืืืืฉื ืฉื ืืืคืชื, ืืชื ืืืื ืืืฉืช ืืงืื ืืืื ืจ ืชืื ืืืืขืช ื-IP, ืืื ืืืืคื ืขืงืจืื ื ืื ืื ื ืื ืืฉืชืืฉืื ืืื. ืืื ืืืขื ืฆืืจื ืืืืฉื ืืฉืืจื.
ืืืื ืืืืื ืืืกืชืื ืขื ืื ืช ืืขืื ืืช ืืืืฉืื ืฉืื? ืืืขืชื, ืืืืื ืืืื ืืื ืชืืื ืช ืืืืงืจ ืืจืฉืืืช ืขืืืจ MySQL.
ืื ืื ืืืชืืจ. ืืฉ ืืจืื ืืจืกืืืช. ืืื ืืคืื ืงืฆืืื ืืืืช ืฉืื ืืืคืฉืจืช ืื ืืืกืืช ืฆืจืืื ืจืืื ืฉืขืืืืื ืืืชืขืืจืจ ืืชืืืื ืืคืืชืื. ืื ืชืืื ืืื ืืชืืื ืืื ืื ืื ืืชืงืฉืจ, ืื ืื ื ืืืฉื ืฉืื ืืืื ืื ืืขืืืช ืืืืฉืื ืขืฆืื.
Hub.docer.com ืืืื ืืืจื ืืื ืงืืฉืืจืื ื-github.com, ืืืืื ื ืชืื ืื ืืืืืืื ืืฉืืจืืช ืฉืืื ืชืืืื ืืื ืืช ืืช ืืชืืื ื ืืขืฆืืื.
ืืืืฉื ืืืืจ ืื ืงืืื ืกืงืจืืคื docker-endpoint.sh, ืืฉืจ ืืืจืื ืขื ืืืชืืื ืืจืืฉืื ื ืืขื ืืืฉื ืืขืืืื ืฉื ืืฉืงืช ืืืคืืืงืฆืื.
ืื ืืืืืื ืื, ืืฉื ื ืืืืืช ืืืืืืจ ืืืืฆืขืืช ืืฉืชื ื ืกืืืื. ืขื ืืื ืืืืจืช ืืฉืชื ื ืกืืืื ืืขืช ืืคืขืืช ืงืื ืืืื ืจ ืืืื ืื ืืืืฆืขืืช docker-compose, ืื ื ืืืืืื ืืืืจ ืฉืขืืื ื ืืืืืืจ ืกืืกืื ืจืืงื ืขืืืจ docker ื-root ื-MySQL ืื ืื ืฉื ืจืฆื.
ืืฉื ื ืืคืฉืจืืช ืืืฆืืจ ืกืืกืื ืืงืจืืืช. ืื ืื ื ืืืืจืื ืฉืื ืื ื ืฆืจืืืื ืืฉืชืืฉ, ืื ืื ื ืฆืจืืืื ืืืืืืจ ืกืืกืื ืืืฉืชืืฉ, ืืื ืื ื ืฆืจืืืื ืืืฆืืจ ืืกื ื ืชืื ืื.
ืืคืจืืืงืืื ืฉืื ื, ืืืืื ื ืืขื ืืช ื- Dockerfile, ืฉืืืจืื ืืืชืืื. ืฉื ืชืืงื ื ืืช ืื ืืฆืจืืื ืฉืื ื ืืื ืืืคืื ืืช ืื ืจืง ืืืจืืื ืฉื ืืืืืืช ืืืฉืชืืฉ ืฉืืืคืืืงืฆืื ืืฉืชืืฉืช ืืื. ืื ืืืคืฉืจ ืื ื ืคืฉืื ืืืฆืืจ ืืกื ื ืชืื ืื ืืืกืืฃ ืืืืฉืืืื ืืืืืจ ืืืชืจ. ืืืืฉืืื Ruby ืืฉ ืคืงืืื ืืืฆืืจื, ืฉืื ืื ืืืืืงื ืฉื ืืกืื ื ืชืื ืื.
ืืืื ืืืืื ืืืื ื ืจืืืช ืืจืกื ืกืคืฆืืคืืช ืฉื MySQL ื-github.com. ืืชื ืืืื ืืคืชืื ืืช Dockerfile ืืืจืืืช ืืื ืืืชืงื ื ืืชืจืืฉืช ืฉื.
docker-endpoint.sh ืืื ืืกืงืจืืคื ืฉืืืจืื ืื ืงืืืช ืืื ืืกื. ืืืืื ืืืชืืื ืืจืืฉืื ื, ื ืืจืฉืื ืืื ืฉืืื ืืื ื, ืืื ืืคืขืืืืช ืืืื ืืชืืฆืขืืช ืจืง ืืกืงืจืืคื ืืืชืืื.
ื ืขืืืจ ืืืืง ืืฉื ื.
ืืื ืืืืกื ืืช ืงืืื ืืืงืืจ, ืขืืจื ื ื-gitlab. ืืืื ืืขืจืืช ืืืงื ืืืื ืฉืืฉ ืื ืืืฉืง ืืืืืืื.
ืืื ืืืจืืืืื ืฉื Gitlab ืืื Gitlab CI. ืื ืืืคืฉืจ ืื ืืชืืจ ืจืฆืฃ ืฉื ืคืงืืืืช ืฉืืฉืืฉื ืืืืืจ ืืืชืจ ืืืจืืื ืืขืจืืช ืืกืืจืช ืงืื ืื ืืืคืขืื ืืืืงืืช ืืืืืืืืืช.
ืฉืืืช Gitlab CI 2
ืืขืช ื ืืื ืื ื ืืจืฉ ืขื ืื ืช ืืืคืขืื ืืช Gitlab CI. ืืื ืืืคืขืื ืืช Gitlab CI, ืื ืื ื ืจืง ืฆืจืืืื ืืฉืื ืืช ืืงืืืฅ .gitlab-ci.yml ืืฉืืจืฉ ืืคืจืืืงื.
ืืื ืื ื ืืชืืจืื ืฉืื ื ืจืืฆืื ืืืฆืข ืจืฆืฃ ืฉื ืืฆืืื ืืื ืืืืงื, ืคืจืืกื.
ืื ื ืืืฆืขืื ืกืงืจืืคืืื ืืงืืจืืื ืืฉืืจืืช ื-docker-compose ืืื ืืื ืืช ืืช ืืืคืืืงืฆืื ืฉืื ื. ืื ืจืง ืืืืื ืขืืจืคืืช.
ืืืืจ ืืื, ืื ื ืืืืจืื ืื ืืฉ ืฆืืจื ืืืคืขืื ืืขืืจืืช ืืื ืืฉื ืืช ืืช ืืกื ืื ืชืื ืื ืืืืคืขืื ืืืืงืืช.
ืื ืืกืงืจืืคืืื ืืืืฆืขืื ืืืืื ืืืื ื ืืืืืจืื ืงืื ืฉืืืื, ืืืขืจืืช ืืืฉืืื ืืฉืื ืืฉื ื ืฉื ืืคืจืืกื.
ืฉืื ืืืืืขื ืืืืฉื ืืขืช ืขืืืจ ืกืืื ื. ืื ืืจืื ื ืืคืขืื ืืืืฉ ืฉื ืืคืก ืืื ืืฉืืชื.
ืื ื ืืืืื ืืช ืื ืืืืืืื ืืืื, ืืื ืื ื ืืขืืื ืืช ืื ืืืืืืื ืฉืื, ืฉื ืืกืคื ืืฉืื ืืจืืฉืื ืืืืื ืืืืืงื.
ืื ื ืืคืขืืืื ืขืืืจ ืืฉืชื ื ืืกืืืื ืื ืืืื ืืช ืืขืืจืืช ืืกื ืื ืชืื ืื ืฉื ืืชืื ืขื ืืื ืืืคืชืืื.
ืืฉ ืืขืจื ืฉืื ืื ืจืง ืขื ืกื ืืฃ ืืืืกืืจ.
ืืขืช ืฉืื ืื ืกื ืืคืื ืืืจืื ืืื ื ืืืืฆืข.
ืืคืฉืจ ืืืจืื ืืฉืงืืช ืืคื ืกื ืืคืื.
ืืื ืืืจืื ืืืช ืขืื ืืืชืจ, ืขืืื ื ืืืชืงืื ืืช Gitlab Runner.
ืืื ืื ืืชืื ืืืืื ื. ืืืืืจ ืืงืืืฅ ืืืื, ืืืงืืื ืืขืืื ืืืืื ื, ืฉืืื ื ืืฆืจืื ืื ืชืืืช.
ืืขืช ืืืคืขืื, ืื ื ืจืืฉืืื ืืช Gitlab Runner.
ืื ืื ื ืืงืืืื ืืช ืืืคืชื ืืืืฉืง ืืืื ืืจื ื ืฉื Gitlab.
ืืืืจ ืืื ืื ื ืงืืจืืื ืืคืงืืืช ืืืชืืื ืืฉืืจืช ืืคืงืืื.
ืืืืจ ืืช Gitlab Runner ืืืืคื ืืื ืืจืืงืืืื (Shell, Docker, VirtualBox, SSH)
ืืงืื ื- Gitlab Runner ืืืืฆืข ืืื commit, ืืืชืื ืืืืืจืช .gitlab-ci.yml.
ืืื ืื ื ืจืื ืืืืืืืืช ื-Gitlab ืืืืฉืง ืืืื ืืจื ื. ืืืืจ ืฉืืืืจื ื ืืช GItlab CI, ืืฉ ืื ื ืืื ืฉืืจืื ืืช ืืฆื ื-build ืืจืืข.
ืื ืื ื ืจืืืื ืฉื ืขืฉืชื commit ืืคื ื 4 ืืงืืช ืฉืขืืจ ืืช ืื ืืืืืงืืช ืืื ืืจื ืืืขืืืช.
ืื ืื ื ืืืืืื ืืืกืชืื ืืงืจืื ืขื ืืื ืืื. ืืื ืื ื ืจืืืื ืฉืฉืชื ืืืื ืืช ืืืจ ืขืืจื. ืกืืืืก ืืืืงื ืืกืืืืก ืคืจืืกื ืืฉืืืื.
ืื ื ืืืฅ ืขื build ืกืคืฆืืคื, ืื ืืืื ืคืื ืืกืืฃ ืฉื ืืคืงืืืืช ืฉืืืคืขืื ืืชืืืื ืืคื .gitlab-ci.yml.
ืื ื ืจืืืช ืืืกืืืจืืืช ืืืืฆืจืื ืฉืื ื. ืื ืื ื ืจืืืื ืฉืืื ื ืืกืืื ืืช ืืืฆืืืื. ืืืฉืจ ืืืื ืื ืืืืฉืืช, ืื ืื ืืืฉืื ืืฉืื ืืื ืืงืื ืืืืืื ืืื ื ืืขืืืื.
ืืืื ืืฉืืืืช ืคืชืจื ื ื-Staging ืืฉืืืืขื ื Docker? ืืืขืจืืช ืฉืื ื ืืืจืืืช ืืจืืืืื ืืืื ืื ื ืฆืืจื ืืืคืขืื ืืืืฉ, ืจืง ืืืง ืืืจืืืืื ืฉืขืืืื ื ืืืืืจ, ืืื ืื ืืืขืจืืช.
ืืื ืืขืฉืืช ืืืช, ืืืื ื ืฆืจืืืื ืืจืกืง ืืื ืืชืืงืืืช ื ืคืจืืืช.
ืืืืจ ืฉืขืฉืื ื ืืืช, ืืืืชื ืื ื ืืขืื ืขื ืืขืืืื ืฉ-Docker-compose ืืืฆืจ ืฉืื ืจืฉืช ืืฉืื ืขืืืจ ืื ืืื ืืืื ื ืจืืื ืืช ืืจืืืืื ืฉื ืืฉืื.
ืืื ืืืชืืฆื, ืืฆืจื ื ืืช ืืจืฉืช ื-Docker ืืืืคื ืืื ื. ื ืืชื ื-Docker-compose ืฉืืชื ืืฉืชืืฉ ืืจืฉืช ืืื ืขืืืจ ืืคืจืืืงื ืืื.
ืืคืืื, ืื ืจืืื ืฉืืชืืื ืืจืฉืช ืื ืจืืื ืจืืืืื ืืืืงืื ืืืจืื ืฉื ืืืขืจืืช.
ืื ืืฉื ืืื ืืื ืคืืฆืื ืืืื ืขื ืคื ื ืืกืคืจ ืคืจืืืงืืื.
ืืืืืื ืฉืืื ืฉืื ืื ืืจืื ืืคื ืืืื ืฉืืืชืจ ืงืจืื ืืืืฆืืจ, ืืืื ืืืฉืชืืฉ ืืคืืจื 80 ืื 443, ืืืฉืืฉืื ืืื ืืงืื ื-WEB.
ืืื ืคืชืจื ื ืืช ืื? ืืงืฆืื ื ืืช Gitlab Runner ืืื ืืื ืืคืจืืืงืืื ืืืืืืื.
Gitlab ืืืคืฉืจืช ืื ืืืจืืฅ ืืื Gitlab Runners ืืืืืจืื, ืฉืคืฉืื ืืงืื ืืช ืื ืืืฉืืืืช ืืชืืจื ืืฆืืจื ืืืืื ืืืคืขืืื ืืืชื.
ืืื ืฉืื ืืืื ืื ื ืืืช, ืืืืื ื ืืช ืงืืืฆืช ืืคืจืืืงืืื ืฉืื ื ื-Gitlab Runner ืืื, ืฉืืชืืืื ืืื ืืขืืืช ืขื ืื ืคืืื ืฉืื ื.
ืืขืืจื ื ืืช nginx-proxy ืืกืงืจืืคื ืืคืขืื ื ืคืจื ืืืืกืคื ื ืจืฉืชืืช ืขืืืจ ืื ืืคืจืืืงืืื ืฉืื.
ืืคืจืืืงื ืฉืื ื ืืฉ ืจืฉืช ืืืช, ืืืืืื ืืฉ ืืื ืจืฉืชืืช ืืคื ืฉืืืช ืคืจืืืงืืื. ืื ืืืื ืืกืคืง ืฉืจืช ื ืืกืฃ ืืคื ืฉืืืช ืืืืืื.
ืืืงืฉืืช ืฉืื ื ืืืืขืืช ืืจื ืืืืืืื ืืืฆืืื 80 ืื ืคืชืจืืช ืืงืืืฆืช ืืืืืืช ืืืฉืจืชืช ืืช ืืืืืืื ืืื.
ืืืื ืขืื ืืขืืืช ืืื? ืื ืื ืฉืื ืืงืื ืืืื ืจืื ืคืืขืืื ืืฉืืจืฉ ืืืจืืจืช ืืืื. ืืื ืฉืืจืฉ ืื ืฉืืื ืืืืจื ืืฉืืจืฉ ืฉื ืืืขืจืืช.
ืขื ืืืช, ืื ืชืืื ืืช ืืงืื ืืืื ืจ, ืื ืืืื root ืืืงืืืฅ ืฉืื ื ืืืฆืจืื ืืืืื ืื ืืงืื ืืืืืืช root.
ืื ืืืคืชื ื ืื ืก ืืงืื ืืืื ืจ ืืขืฉื ืฉื ืืื ืคืงืืืืช ืฉืืืืฆืจืืช ืงืืฆืื, ืืื ืขืื ืืช ืืงืื ืืืื ืจ, ืื ืืฉ ืื ืงืืืฅ ืืกืคืจืืืช ืืขืืืื ืฉืื ืฉืืื ืื ืืืฉื ืืืื.
ืืื ืืคืฉืจ ืืคืชืืจ ืืช ืื? ืืชื ืืืื ืืืืกืืฃ ืืฉืชืืฉืื ืฉืืืื ืืืืื.
ืืืื ืืขืืืช ืืชืขืืจืจื ืืืฉืจ ืืืกืคื ื ืืช ืืืฉืชืืฉ?
ืืขืช ืืฆืืจืช ืืฉืชืืฉ, ืืขืชืื ืงืจืืืืช ืืื ืื ื ืืช ืืืชื ืืืื ืงืืืฆื (UID) ืืืืื ืืฉืชืืฉ (GID).
ืืื ืืคืชืืจ ืืขืื ืื ืืืืื, ืื ื ืืฉืชืืฉืื ืืืฉืชืืฉืื ืขื ืืืื 1000.
ืืืงืจื ืฉืื ื, ืื ืขืื ืืงื ื ืืื ืขื ืืขืืืื ืฉืืืขื ืื ืืืคืชืืื ืืฉืชืืฉืื ืืืขืจืืช ืืืคืขืื ืืืืื ืื. ืืืืืืื ืื, ืืืฉืชืืฉ ืืจืืฉืื ืืฉ ืืืื 1000.
ืืฉ ืื ื ืชืืื ืืืช?
ืงืจื ืืช ืืชืืขืื ืฉื Docker. ืืคืจืืืงื ืืชืคืชื ืืืืคื ืคืขืื, ืืชืืขืื ืืฉืชื ื. ืื ืชืื ืื ืฉืืชืงืืื ืืคื ื ืืืืฉืืื-ืฉืืืฉื ืืืจ ืืืคืืื ืื ืื ืืืืฉื ืื.
ืืืชืื ืฉืืืง ืืืืขืืืช ืฉืคืชืจื ื ืืืจ ื ืคืชืจื ืืืืฆืขืื ืกืื ืืจืืืื.
ืื ืื ื ืจืืฆื ืืืืช ืจืืืง ืืืจ ืืื ืืืืช ืืฉืืจืืช ืืชืืืืจ.
ืืืืื ืืืช ืืื ืืื ืื ืื ืืืืื ื ืฉื Docker ืืฉื Docker Swarm, ืฉืืืฆื ืืืงืืคืกื. ืื ื ืจืืฆื ืืืคืขืื ืืฉืื ืืืืฆืืจ ืืืืืกืก ืขื ืืื ืืืืืืืช Docker Swarm.
ืืืืื ืืฉืจืฆื ืืืคืืื ืืช ืืขืืืื ืขื ืืืื ืขืฅ ืื ื ืืืื. ืืขืช ืืืืื ืื ืืืืืืื. ืื ืืคืืืจืื ืขื ืคื ื ืืืืืืช. ืืืช ืืืฉืืืืช ืืื ืืืฉื ื ืืื ืืืืืื ืืจื ืืืฉืง ืืืื ืืจื ื.
ืืงืืจ: www.habr.com