αααα»αααααΎα±ααα’αΆαααααα·α αΆαα·ααααααΆαααΆαααααα Alexander Sigachev ααΈ Inventos "ααααΎαααΆαα’αα·αααααα αα·αααΆαααααΎαααααααΆαα½α Docker + Gitlab CI"
α’ααααααααΎαααα αΆααααααΎαα’αα»ααααααΆαα’αα·αααααα αα·αααααΎαααΆαααΆααααααααααα’ααααΎ Docker + Gitlab CI ααααααα½ααααα½αααΆααΌαααααΆαα αααααααααααααΌαα αΆααααααΎα? ααΎααααΌααααα ααααΆαααΌα ααααα ? ααΎααααΌαααααΎααααααααΆαααΌα ααααα ?
αααΆαααΆααααααααΊααα’αααααααΆαα·ααΆαααΆααααααα ααΆααααααααα’αααΈααΆαα’αα·αααααα αα·αααααΎαααΆαααΆααααααααααααΎ Docker αα·α Gitlab CI α αααΆαααΆααααααα½αα―αααΊααΈααααΆα 2017 α αααα»ααα·αααΆ ααΈαααΆαααΆαααααα α’αααα’αΆα αααααΈααΌαααααΆα αα·ααΈααΆααααα αααα·α αααα·αααααααααΆαααααΎααααΆααα
α’αααααΆαααααααΌααα
αααααααααΆα
ααααααααααααα»αααΊ Alexander Sigachev α αααα»αααααΎααΆαα±αα Inventos α αααα»αααΉαααααΆααα’αααα’αααΈαααα·ααααααααααααα»ααααα»αααΆαααααΎααααΆαα Docker αα·ααααααααααΎααααα»αα’αα»ααααααΆααααα·α αααααααΎαααααααα αααα»ααααα»αα αα»αα
αααααΆααααααααα αΆαα ααααΎαααΆαα’αα·αααααααααααααΎ Docker αα·α Gitlab CI α
αααααΆααΆααα·ααΆαααΎαααΈααΈααααααααα»αα’αααΈ Docker α αα
ααααααααΆαααΆαααααααΌα ααΎαααααΎαα Docker in Development αα
ααΎαααΆαααΈαα’αααα’αα·ααααααααα»αααααα α
ααα½ααα»ααααα·ααααααααΎ Docker ααΆααααα αα 2-3 ααΆααα ααααα·α
ααααα αααα·αααααααααΌαααΆαααα½α α αΎαααΎαααΆααα
αα»αααααα·α
αααα ααααΆαααα
ααααααΎαα
ααΎααΉαααΆαα’αααΈαααααα αααα»ααααΆαααΆαααααα? ααΎαααΉαα ααααααααααα·αααααααααααΎαα’αααΈα’αααΈααααα»ααα½α αααααΎααααααΌαααΆα αααα αΆα’αααΈαααααααααΎαααΆααααααααΆαα αα·αβαααβαα βαααααβααΈααααααβαααβααΆβααα’αΆαβαααβαα ααα»ααααβααααΌαβααΆαβα’αα»ααααΆαβα±ααβααααβαα βαα»αβαααα
ααΆαα ααΆααααααΎαααΊα α αα’αααΈααααααααΆααααααΎαα’αΆα α αΆααααααααααΎαα
ααΎααΎααααα»ααααααααΆααααα αΆα’αααΈαααα?
αα ααααααααΆααααα»αααΆα αααΎααα αααα»ααααα»αα αα»ααα½α α’αααααααααααααα·ααΈααΊααΆααααΆαα αααααααα ααΆαβααααΆααααΆαβαααβα’αααβαααααβαααααα·ααΈβααααΌαβααΆαβααβα ααβααΈβααααααβαα½α α αΎαβαααααβαααβααααβαααβααααααβαααααα
ααΎααααΈα±ααα’αααααααααααααα·ααΈαααααΆαααΏα ααΆααααααΌαααΆαααααΌαααααααααααααα α αΎαααΎαααααΎαααΆαααα·ααααΆαα±ααααΆαααΆααααΆααααα’αΆα ααααΎαα ααΆα αααααΉαα’αα»ααααΆαα±ααααΆαααααααααααααΆααααα αΆαααααααααααα
ααΆααααααΆ ααααα·αααΎα’αααα αΆααααααΎαααΈααααΌα αααααΆαα―αααΆααα·α αα½α αα αααα»αααααααα ααααααΆαα’αααΈααααααα‘αΎαααΊα’αΆα ααααΆααααααΆααααα’αααα αΆααααα»αααααα αα·αααα·ααααα αααααααααααΎααΆαααααααα½αα―ααααα»ααααααααα½αα¬ααΈαααααα ααΎααααΈαααααΎαααααΏαααα ααΎαααΆαααααΎ Docker α
α ααα»αααααααΆααααΊααΆαααααααααααααΆαααααΆαααααααα αααα»αααΆαα’αα·ααααααα ααΆααααα·ααααααααααααα»α α’αααα’αα·αααααααααααααΆααααα·ααααα½α ααααΎαα αααα»ααααααααααΈααΈααααΆα αααααααΆαααααα½αααααΌαααΆααααα αΌα α§ααΆα ααα vasya.dev α α’αααα»ααααααααΆααααΊααΆα’ααααα·αααΆαααααααΆααααααα Petya ααααααααΊ petya.dev α αα½ααααααααΎαααα ααααα α¬αααΆαααΆαα»αα½αα ααα½ααααααααααααααααααΎαααααααααααα
αα ααααααααααααααααΈαα ααααΎα α αΎαααααααααααΆαααααα αΆααααααΎαα αΌααα αααα»αααΆαααααααα ααΆαααααααα ααααααααα·ααααΆαα’αα·ααααααααΎαα‘αΎα α αΎαααααΌαααα αααααααααΌαααΆααααααα‘αΎααα·αα
ααΌα
ααααΆααααααααΎαα‘αΎαααΆαα½αααΆααααααααΌαααααΆααα·ααααααα ααΆαααααΆααααΆαααα·ααααααααΈαα»ααααα·ααΆα αα·αααααΎααΆαααΆαα½αααΆααααααααΆαα root αααα αα
ααααΆααααΆαααα‘αΎα MySQL ααΆααα½αααααΆααααΆαααααααΆααααΆααααααααΆαα α αΎαααΆααααααααΆαααααααα
ααΆ 123 α ααΆααΆααΏααααΎαα‘αΎααααααΆαααααααα
ααΆααααααααααΌαααααΆααα·ααααααααααΌαααΆαααααΆααααααΌαα₯ααααααα’αΆαααααααΎααΆαααααααααΆα
α·αααααααα’αααα’αα·ααααααα ααΆαααααΆααααΆαααα α’αααααΆααααΆαααα·αααΆαααααΆααααααα ααΆααααα·α
αα
ααααααααΎαααααααααααααΆαααααααα
ααΆααααααααααΆαααααΎααααααα½αα
ααα½ααα
αααα»α .gitignore
α αΎαα’αααα’αα·ααααααααΈαα½ααααααΌαααα‘αΎαααΌαααααΆααα·ααααααα αααααααΎα±ααααΆαααΆαααααΆααααα»αααΆαα
αΆααααααΎαα αααα»αα
αααααααααααααααα ααΆα
αΆαααΆα
ααααα»αααΆαα
αα
αΆαα’αααΈααΌαααααΆααα·ααααααα ααΌαααααΆααα·ααααααααααΌαααααααΌαααΆαα
αΆααααααΎα ααΆααααααααΆααααααΌααααααα
αΌα α’αααααααΎααααΆααααααΌαααα
α»αααααα ααΆααΆαααααΌαααααααΌαααΆααααααΎαααα
αααα αΆαα½ααααααΊαααααααααααααΆαααααααΆαααα ααΆααΆααΏααααΎαα‘αΎααααα’αααα’αα·ααααααααααΎααΆαααΆαα½αααααααααααααα ααΆααααααα Legacy αααααΆαα αΆααααααΎαααΆαααΈααααΆαααααΆααα»α (α αΆααααΈααααΆα 2017 - ed. note)α αα αααα αΆααααααΎα ααΎαααΆαα αΆααααααΎαααΆαα½α MySQL 5.5 α ααΆααααΆαααααααααααΎαααααα αααααΎαααααΆααΆαα’αα»ααααααααααααΎαααααααααααα MySQL α§ααΆα ααα 5.7 α¬α αΆααααΆαααα (αααα»αααααΆα 2017 - ed. note)
ααααΆααααΆαααααααααΎααΆαααΆαα½α MySQL ααΉαααΆαααααΆαααααΆαααααααΆαααααΌαααΆαα’αΆαααααααΆαα½ααα½αααα ααΆααΆααααα αΆααΆααααα»αααΆαααααΎαααΆαααΌαααααΆα 2 ααΆαα½αααααΆα αααΆαα αα ααΆαα α’αα·αα·ααα αΆααααΆααααα αΆαααα»αααΆααααααΆαααα ααΌαααααΆααα·ααααααααααΈα αα αααα»ααααααααααααΎααααα αΆααΆα αααΎαα
αααα αΆαααααΆααααΊαα ααααααα’αααα’αα·ααααααααααΎααΆαααΎαααΆαααΈααααα»ααααα»α ααΆααααααΎααααΆααααα»ααααα»α α―αααΆαααΌαααααΆα RAM ααΌαααααΆαα α’ααααααααααΆααα’αααα ααααααααΎααααααααααΆαα αααααααα αΆααααΌαααΆαα’αα»αααααααα»ααααααααααααααΆααα·ααααααΆααΆααααΎαααΆαααΎαααΆαααΈααααα½αα α§ααΆα ααααα½αααΊαα ααααααααΎαααΆααααΆαααΈααα backend αα αααα»αααα·ααααα 3 α αΎαα’αααα’αα·αααααααααααΆαα»αα―αααΆααα αα root α αΎαααΈααΈααα nginx ααα―αααΆαααΎααααΈααααΎααααα ααΉαααααΎα αα ααααααααΌαααααααα αΌααα αααα»αααα·ααααα ααΆαααα αΆαααΆα―αααΆαααΆαααααααΆααα ααΎαααΆαααΈααααα½ααααα»αα αααα 3 serverα
αα·ααα ααααααΆααΈααααΌαααα»αα’αα·ααααα₯α‘αΌααααα αα ααααααααΎααααα αααααααα·ααΈαααααααααΎααα ααΆαααααααΌα ααα½αα ααα½ααααααΆαα’ααααααααααΆαα½αααααΆα αααα’αα»ααααΆαα±ααα’αααααααΎαααΎααα αα αααα·ααααΆαααααΆαααααααΆααααΆαααααα·α αα ααΆαα ααΆααα’αα»ααααΆαα±ααα’αααα αααααααααΆαααΆα αα·ααααα½ααα»αααααΌααααΆαα’αααα’αα·αααααααααααα
Frondend-developer αααα’αα·ααααααΎ JS ααααΎαααααααΆαα₯αααα·ααααΎ Backend ααα α’αααα’αα·αααααα backend α’αα·αααααααα»αααααΈααααααΎα Ruby on Rails αα·ααα·αααααααααααααΆαα½α Frondend ααα α’ααααααααααααΌαααΆαα’αα»αααααααααααΎ API α
ααΆααααΆαααααααΆαα αααααΆααααα½αααΈ Docker ααΎαα’αΆα ααα αααααααΆααα ααΎ Staging ααΆαα ααααααααΈαα½αα αααααΆαααΆαααΆααααΆααααααααΆ ααΆαααΆαααΆααααααααΆααααΆααα ααΆααααααα ααΆα αΆαααΆα ααααα»αααΆααααα ααααΆαααααΆαααΈααααα·αααα·α αα·αααααααα ααΆαααααααααα½αααΆαααα‘ααααΈααααΆ α¬ααΎααααΈα αααααααααααααααααα·ααααΆα αα·ααααααααααα’αΆα ααααΆααααααΌαααΆα α’αΆαααααααΎαααααααααααααΆαααααΆαα₯αααα·ααααΎααααΆαα αα·ααα ααα
α§αααααα ααΎααΎαααααΎα’αααΈ?
- Docker αααα½αα―αα 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 hub ααΌαααΆααα MySQL 5.7.14 αααααααΆαααΆαααααΆααααααΌαα ααΎααααααΌαααΌαααΆααααααα½ααα»αααααΌααααααΆαααααααα·ααΈααα αααααααααααΎαααΈαααα αα α»ααααααα ααΆβαααααΌαβααΌαααΆαβαααααΆααβααΎαβα’αα‘α»αβαααβααΎαβααααΎαααΆαβααααΌαα αααααΆααααααΆααααΎαααΆαααΆααααααααΆαααααΎααααα»αααααα·ααααα·αα ααΈαααα ααααα·αααΎααΎααααααααα αα·αααΎαααΉαααΎαααΆααΆααααααααΆααΎαααααΎαααΆαααΆαααα Puma ααααΌαααΆααααααα Puma ααΊααΆααααΆαααααααααααααα αααα»α Ruby α αααα»αααααΈααΈααΈαααΎαααα·αααα ααΆαααβαααααΆβαααβα’αΆα βααααΎβααΆαβα’αααΎβα α·αααβα’αΆαααααβααΎβαααααΌαβααΆαβα¬βαα·α αα ααΆαβααααβααΎαα
ααΎααααααααΆααΆ ααΎαααααΌααααααΌαα ααααα ααΎαααΆαααΈαα’αααα’αα·ααααααααααααΎαααΈ 3000 αα 3000 αα ααΎα ααααα»αααΊαααα αααααααΌαααΆαααααΎαααααααααααααααα·αααααααΎ iptables αα·αααααααΆαααααααΆ αααααααΌαααΆααααααααααααααΆαααα αααα»α Docker α
ααΌα ααΈαα»α α’αααα’αα·ααααααααα’αΆα α αΌαααααΎα’αΆααααααΆα IP ααΆααααΆαααα α§ααΆα ααα 127.0.0.1 ααΊααΆα’αΆααααααΆα IP αααα»ααααα»α α¬ααΆααααα αααααααΆαααΈαα
αααααΆααα α»αααααααα·ααΆαααΆ web container α’αΆαααααααΎ db containerα αα ααααααααΎαα α ααΆαα αΆααααααΎααα web container ααα docker-compose ααΆααααΌαααΉαα αΆααααααΎα database αααααΆαααα½αααΎαα αα½α βα αΎαβαα βαααβα αΆααβααααΎαβααΌαααααΆαβαα·αααααα (ααΆαβαα·αβαααααβααΆαβααΎαβααααΎαααΆαβαα»αααΊααα! αααβαα·αβααΆααΆβααΆαβαααααβαααα½αβααααβααααΆααβαα·αααααα) ααΉαβααΎαβααααΎαααΆαβαααααα·ααΈβαααβααΆβαααααβααΆαβαααααβααααβααΎαα
ααΆαααααΆαααα α»ααα ααααααααΌαααααΆααα·αααααααα·αααααΎαααΆα αα·ααααααΆαα»αααααΆααα ααααααααΎααααααααα»ααααα»ααα·αααααα ααΌα ααααααΆαααααααααααΆααααααΆααααααααααααααααα
α’αααΈααααααααα±ααααΎαααΌαααΆαααααΎααααΆααααααΆα dockerization ααΌαααααΆααα·αααααααα ααΎααααααα ααΎααα½ααα»ααααααααα MySQL αααααΆααα’αααα’αα·ααααααααΆααα’ααα ααΆαααααΆαααα α»ααα½αα ααα½ααααα’αΆα ααΎαα‘αΎααα αααααααααααα»αααααΆ αα ααααααααΆααααααααααα ααΆαααααααα ααΆαααααααα ααΆααααααααααΆαααΎαααααΆααααααΌαα ααΆα’αα»ααααΆαα±ααα’ααααααααΆααααααααααΆαααΈαααΌαα αααααΆααααΌαααααΆααα·αααααα ααΆαα αΌα ααΆααααααααΆααα ααΎααααα»αααααΆααααΈααααΆαααΈαα½αααααααααααα αα·αααΆααααααααα·α αα αααα»αα―αααΆαααααααα ααΆαααααααααααααΎαααΆαααΈαα»αα
ααΎαααΆαα±ααΆαααααΎααΆααααααααααα’αααααΎααααααΆααααα·ααααΆαα’αα·αααααααααααΉααα»αααΈααααΆαααΎαα MySQL ααααΌαααΆαααααααα ααΆαααααααααααααΆαααααΆαααΈααααααααΆαααααΆαααΎα α αΎαααααΎαααΆαααααααΆα ααααΈαααα’ααααΊα’ααααΆααα
Docker α’αα»ααααΆαα±ααα’αααααααΎαααααα·ααΈαααααα Python, Ruby, NodeJS, PHP αααααααααα ααααΆαα ααΎααααα αΆαααααααΌαααΆαααααΎααααΆαααααααα·ααΈααααααααααααααα½αα ααα½αα ααΈαα»α Ruby ααΆαααααΎαααα αα rpm αααα’αα»ααααΆαα±ααα’αααααααΆααααααΌαααααα’αΆαααααααΎααααααα ααΆααα’αα»ααααΆαα±ααααααα ααΌαα’ααα»αααα Docker container ααΎααααΈαααααααΌαααααααΌα αα·αααααααΆαα½αααααΆααΆαα½αααΉαααΆαα’αΆαααααα ααΎαααααΆααααα αΆαααα»αααΆααααααΉαα’αααΈααααααΆααα’ααααααααα αα·αααΌααααααα ααΎααααΈααααΎαα αα α»ααααααααΆααααα ααΌααααααΆααα»αα αΆαα α αΎαααΎααα»αααααΈα ααααα·αααΎααΆαα’αααΈαα»α ααΎαα’αΆα αααααΆαααα»αααααΈ ααΎααα»αα αΆααα
αααααΆααβααΈβαααααΎαβααΌαααΆαβαα½α αα»αβααΆααβαααα»αβααΆαβα’αα·αααα αα·αβααα·αααααβααΉαβααΌα βααααΆα αααααΆααΆααα·αααΆαα·ααααααααΆααααΆαααα‘αΎαααα
αα ααΎ Frontend ααΎαααααΎ JavaScipt αα·α NodeJS α
α₯α‘αΌααααααΎαααΆαααααααα α»αααααααα ααΎ ReacJS α α’αααα’αα·ααααααααΆαααααΎαααΆαα’αααΈααααααααΆααα αααα»ααα»αααΊααα α αΎαααΆααααααΎααααααααΎ hot-reload α
αααααΆαααα αα·α αα ααΆαααα‘αΎα JavaScipt ααααΌαααΆαα αΆααααααΎα α αΎαααΌααααααΆαα αααααααΆαα·αα·ααααααααΌαααΆααααααααΆααααααααΆαααααα nginx α
αα ααΈααααααα»αααΆααααααα±αααααααααΆαααααααααααα α»ααααααααααααΎαα
ααΎαα·α αα ααΆαα’αααΈααααααααΌαααΆααααααααΆα? ααΎαααΆααααααΌαααΆααααα»αααΆααααααΎααααααααααααα§αααααα αααααααΎα’ααααααααα αα½αααααα½αααΆααα·ααααααα ααααααΆααα½αααΊααΎααααΈααααΎααΆαααΌαααααΉααα»ααα α§ααααααααα
ααΎααΎαααΆαααααΎα’αααΈαααααΆααααΏαααα?
ααΎαααΆααααα αααα ααΆαααααα·ααΈααΌα ααΆα αααααααααααααααα ααΎ JS αααααΆαααααααΆαααααααααααααΎαααΆαααΆααααα ααα»α αααααΆαα REST αα ααααα Ruby on Rails α αααααααΆααααααααΆαα’ααααααααααΆαα½αααΌαααααΆααα·ααααααα ααααααβαααβααααΌαβααΆαβαααααΎαβααααΌαβααΆαβαααααβα±ααβα’αα·αα·ααα ααααααααααααααααααΎα’ααααααααααΆαα½ααααααααΆαααααα αα·αααΌαααααΆααα·ααααααααΆααααα ααα»α αααααΆαα REST α
ααΎαααααΆααααααΌαααΆααααα»αααΆαααααΎααΆαααΌαααααΉααααα»ααααααα αα»αααα ααΎαααΆααααααααα½ααααα’αα»ααααααααααΆααααααα½ααα»αααααΌααααα»αααΆααααααααΆαααΌαααααΉααα ααΆαααααα·ααΆααΌααααααα
ααΎαααΆααααααΎααααααααΆαααααΌα ααΆααααααα ααααα·ααααα·ααααΈαααααα·ααΈαα»αααα’ααααααααααΆαα½ααααααααααααααα ααααααααααααααααααΎα’ααααααααααΆαα½ααααααααΆαααααα ααΆααα·α αα ααΊααααΎααΆαααΌαααααΉααα»αα
ααΆαααΌαααααΉααααα»αα’ααααααααααΆαα½ααααΆαααΆααααααααααααααααΌαααΆαα’αα»αααααα αααα»α NodeJS α
αα½αααααΌαααΆαααΆαααα α αΎααααααΆααααααΆαααΌαααααΉαααααΌαααΆαααααΎαα ααΆαααααααΆαααααααΆα
ααΌαααααΆααα·ααααααααΈαααααΌαααΆαααΆααα ααΈαααα αα αααααα αααααΆααααα½αααΈ Docker ααΎαααααΎααΌαααααΆααα·ααααααα―αααΆαααα ααα½α 2 ααααα·αααΆααααααααΆααΆααααααααΆαααΆαα½αα‘αΎαα ααΎαααΈαααααα αα½αααααΆααααααΆααα·αααα·αααΌαα α αΎααα·ααααααααΌαααααααααΌαααΆααααααΆαα»ααααα»αααααααααααααΆαα ααΎαααΆαααΈαααααα’αααα’αα·ααααααα
ααΌα ααααΆααα»αααααα αααα»ααααα αααααΆαααααααααααΆαααααΎααΌαα‘αΎααα·αααΆαααΆααααααΆααα
ααααα·αααΎαα»αααα ααΎαααΆααα·ααΆαα’αααΈααΆαααααΎααααΆααααΌαα‘αΎααα·ααααα»ααααααααααααΆααα ααααααα»αα§ααΆα αααααα ααααΆααααααααααΎααααααααΎααααα ααΉαααΆαααΌαααααΉα Push ααααΌαααΆαααααΎα‘αΎααα·αααΆαααΆαααΈαααααααααα ααΆααααα API α α αΎαααΆαα’αα·ααααααααααΈααααααΎαααΆαα’ααααααααααΆαα½αααΆαα½α α αΎαα
αα ααααααααΎααααα»αααααΎαααα 4 αα NodeJS α α₯α‘αΌαααα (αααα»αααααΆα 2017 - ed. note) αα αααα»αααΆαα’αα·ααααααααααΈα ααΎαααααΎαααα 7 αα NodeJS α αα·αααΆααααα αΆαα αααα»ααααΆαααΆαα»ααααΈααΎααααΈααΆαααααααααΉαααααααααΈαααααααΆαααααα
ααΎα αΆαααΆα α α’αααα’αΆα αααααα αα·αααΎααααα NodeJS ααΈααααΆααααααΌαααααΉα Push α
α αΎαααααα·αααΎααΎαα’αΆα αααααΆααΆαααααααΆαααα API αααααΆααΉαα’αΆα αααα½αααΆααΆαα½αααΉααααααααααααααααααααααΌαααΆαααααΎααΈαα»αα
ααΎα’αααααααΌαααΆαα’αααΈααααααΎααααΈαααααα Docker? ααΎααααααα Dockerfile αα αααα»αααααΆααααααααΎα ααααα·αααααΆα’αααΈααΆαα’αΆαααααα αΆαααΆα αα αααα»αα§ααΆα αααααα αααΆαααΆαα»ααααΌαααΆααααααααΆα‘αΌααΈααα αααααΊααΆαααα»αα’αααααααΆααααα’αααα’αα·αααααααααααα·ααΈααΆααααααα
αα ααααααααΎαααααααααααΈ ααΎααααααΎα Dockerfile αα·αααααΆα’αααΈααααααααα’αααΌαααα ααααΆα (Python, Ruby, NodeJS)α αα αααα»α docker-compose ααΆαα·αααααΆα’αααΈααΆαα’αΆαααααα αΆαααΆα α - ααΌαααααΆααα·ααααααα ααΎααααααΆααΆααΎαααααΌαααΆαααΌαααααΆααα·αααααααααααααααααα α αΎααααα»ααα·αααααααα ααΈααα αα·αααΈαααα
ααΎαααααΎαα»αααΈααΈααΆα ααααα‘ααααΆαα½α nginx ααΎααααΈαααααΎαα·αα·ααααα ααΆα’αΆα αα αα½α αααα»αααΆααααα»αααΌαααΆαα Backend ααΆαααα½αααΆαα αααα»αααααα·αααα‘αααααααΆααααα αααΆαα»α αααααααΌαααΆαααααααααααα αααα»ααα»αααΊααααααααΆα nginx ααααααααα±αααα·αα·ααααα
ααΎααααΈαααααΆαα»α nginx ααΆαααααα mysql ααΎαααΆααααααααα Docker αααααΎααααααΆαα»αααΆααααααα αΆαααΆα αα αα αααα’αααα’αα·ααααααααααΎααΆαααααΌα git ααααααΆαααα ααΎαααΆαααΈαααααααΆαα ααΆααααΆααααααααα½α ααΆααα αΎααααααΆααααΆαα’αα·αααααααααα»ααααααα αα·αααΆααααα½αααΆααΎα αααα’αααΈα¬ααΆααααααα’αααΈαααααααΌαα’αα»ααααα
αααααΆαα ααΎαααΆααααΆαααΆαααΆα αααΎαα α’αααααααααααα ααΌαααααΉα-API ααΆαααΌαααααΉααα»αα
ααΎααααΈα αΆααααααΎαα’αααΈαααΆααα’ααααα ααΎαααΆααααααΎαααααΆαααα½αααα αααααΎαα α ααΆ dockerized-appα αα αααααα ααΎαααααΎααααΆααααΆα αααΎααα»αααΉααααΆαααΆαα»ααΈαα½ααα αα½αααΆαα»αααααΆαααααα‘αΌααΈαα - αα αααα»α GitLab ααΆααΎααα ααΌα ααΆαααα½α ααα»αααααα ααΎαααΆαααΈαααααα’αααα’αα·αααααα αααααααΆααααααααααΆααααΆαααα½αα αα½αααααα·αα α»ααααααααΊααΆαααΆαααΆαα»αααααΉαααααΌαααΆααααα αΌαααααΆα
αααααΊααΆα§ααΆα αααααααααΉαααΆααααααααα·ααΈ dockerized α ααΎαααααΆαααααα―αααΆα 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 ααα»ααααααΆαααααΆαααααΎααα·αααααΎααΆααα ααΆααααααα αα·αα αΆαααΆα αααΆαααΆαα αΌααααααααΆααααα
ααΎα§ααΆα ααααα½αααΆαααααααΌαααΎαααΎααααΈ dockerize αααααα·ααΈααααα’ααα? ααΆααααα·ααααααααα»α α§ααΆα αααααααα’αα½αααΊααΌαααΆα docker ααααΌαααΆααααααΆαα MySQL α
ααΆβααΆβααΆαβααααΆαβααΆααβα ααΆαααααααΆα αααΎαα ααα»αααααα»αααΆαααααααΆα’αα»ααααΆαα±ααα’ααααααααααααααααααΌαααΆαααΆα αααΎααααα’αΆα ααΎαα‘αΎααα αααα»αααααΎαααΆαααααΆαα’αα·αααααααααααααα ααααα·αααΎα’αααα αααΆααααααααΆ αα·αααααααααααΈαααααααααΆααΆααααααααΆ ααααααα»ααα·αααΆα’αααααΉααα·αααΆααααα αΆαααα»αααΆαα’αα»αααααααα½αα―ααααααα
Hub.docker.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 ααΆ root ααααααααα
αα ααΈαααααΎααααααΆααΆααΎαα ααααααα·ααααα·ααΆαααααΆααααααααααΌα ααΆααΆαααααΎααααα ααΆαααααααΆαα
ααΎαααααα·ααααα·ααααααΈααααα α αααααααΆαααα docker-compose ααΎααααΈαααααΎααααααα·ααΈααααααΎαα αααααααΆααααααΆα§ααΆα αααααΆααααααααα»αααααα
αααααΆαααα ααΎααα·ααΆαααΆ ααΆα αΆαααΆα ααααα»αααΆαααααΎαααΆαααΆαααααΎα αααΆααααα»α ααΎααααΈααααΆααααααΌαααΌαααααΆααα·αααααα αα·αααααΎαααΆαααΆαααααΎαααααα
ααααα·αααΎααααααΈαααααΌαααΆαααααα·ααααα·ααααΉαααααΌα α αΎααα·ααααα‘ααααΌαααα α»αααααα αααααααααααααα ααααΆααααΆαααΈααΈαααααΆαααΆαααααααΆαα
ααααΆααααΆαααΆαααααααΆααα αα α»ααααααααααΌαααΆαα’αα»αααααααααΆααααααΆααααΆαα ααΎαβαα·αβααΆαβαααα αβααΆαβα αΆααβααααΎβαβαααβααααΆβααΌαααβα
ααΎααααααααα»αααΆααα’αααααααααα α αΎααααααΆααααααΎαααΎααα»αααΆααα’ααααααααα ααααααααΌαααΆααα ααααΆααααΆαααααΌαααα‘α»ααααααααΎαααααα
ααΎααααα»αααααΎαααΆααααααΆααααΆαααααΆααααααΌαααΌαααααΆααα·ααααααα’αααααα·ααααΆααα αα α»αααααααααααααΌαααΆαααααααααα’αααα’αα·ααααααα
ααΆαα αααΆαααΆαααα’αα»ααααα ααααααααΆααΆααααα»αααααα
αα αααααααΆααααααΌαααΆααΆαααααααααα·αααααΌαααΆαααααα·ααααα·ααα
ααΆα’αΆα ααααΎαα ααΆαααΎααααΈαααα αααΆαα ααααααΎαααΆαααΆααΆα
ααΎααααΈαααα αααΆααααααααα ααΎαααααΌαααα‘αΎα Gitlab Runner α
α§αααααααααΎααααΆαααααααααΌαααΆααααααααΆ Golang α ααΆβααΊβααΆβα―αααΆαβααβαα½αβααΌα βααΆβααΌαα βαα βαααα»αβαα·αα Golang αααβαα·αβαααααΌαβα±ααβααΆαβααΆαβα’αΆαααααβααΆβαα½αβα
αα αααα αΆααααααΎα ααΎαα α»αααααα Gitlab Runner α
ααΎαααα½αααΆααααααΉααα αααα»αα ααα»α αααααΆαααααααΆα Gitlab α
αααααΆααααααΎαα α ααΆααααααααΆα αΆααααααΎααα ααΎαααααΆααααΆααααααααΆα
ααα‘αΎα Gitlab Runner α’αααααααα (Shell, Docker, VirtualBox, SSH)
ααΌααα ααΎ Gitlab Runner ααΉαααααα·ααααα·ααΎααΆαα commit α’αΆαααααααΎααΆαααααα .gitlab-ci.yml α
αααααααααΆααΎααα ααΎαααΎααα αααα»α Gitlab αα αααα»αα ααα»α αααααΆαααααααΆαα αααααΆααααΈααΎαααΆαααααΆαα GITlab CI ααΎαααΆαααααα½αααααααα αΆαααΈααααΆαααΆαααααΆαααΆαααααα ααααααα
ααΎαααΎαααΆααΆαααααααααΆα α·ααααα½αααααΌαααΆαααααΎα‘αΎαααΆαααΈ 4 ααΆααΈαα»α αααααααααΆααααΆαααααΎαααααααΆααα’αα α αΎααα·ααααααααα αΆα’αααΈα‘αΎαα
ααΎαβα’αΆα βαα·αα·αααβααΎαβα²ααβααΆαβαα·αβαααβα’αααΈβααΆαβααΆααααα αα ααΈαααααΎαααΎαααΆααααααΈαααΆαααααααΆαααα½α α αΎαα ααααΆαααΆαααΆααααα αα·αααααΆαααΆαααΆαααααααΆααα ααΎααΆαα
ααααα·αααΎααΎαα α»α ααΎ build ααΆααααΆαααα½α αααααΆααΉαααΆααα»αααΌα output αα commands αααααααΌαααΆαααααΎαααΆααααα»αααααΎαααΆααααααΎαααααΆα ββ.gitlab-ci.yml α
αααααΆα’αααΈααααααααααα·ααα·αααααααααΎαααΎααα α ααΎαααΎαααΆααΆαααΆαααααΆααΆαααααααα αα ααααααααΆαααααΎαααααααααΌαααΆαααΆααααααΎ ααΆαα·ααααααα ααα αΆααααααΆαααα α αΎαααΌαααααΆααααΆααα·αααααΌαααΆαααααΎαα αα α»ααααααααΆαααα
ααΎβααΎαβααΆαβαααααααΆαβαα·α αα ααΆαβα’αααΈααααβαα αααβααΎαβα’αα»αααα docker? ααααααααααααααΎαααΆαααΆαα»αααα α αΎαααΎαααΆααααααΌαααΆαααΎααααΈα αΆααααααΎαα‘αΎααα·α ααΆαααααααααααααΆαααΆαα»αααααααΌαααΆαααααΎαα αα α»ααααααααΆααα αααα»αααααΆααααα»ααααα αα·ααααααααααααααΆααααΌααααααα
ααΎααααΈβααααΎβααΌα αααα ααΎαβααααΌαβαααααβα’αααΈβαααααβαααΆαβαα βαααα»αβααβαααβα‘ααβααΈβααααΆα
αααααΆααααΈααΎαααααΎαααααα ααΎαααΆααααα αΆααΆαα½αααΉαααΆααα·ααααααΆ Docker-compose αααααΎαααα ααααααΆαααααΆαααααα½αααααααΆαααααΆαααααΆααΈαα½αα α αΎααα·αααΎααααΆαααΆαα»ααααα’ααααα·αααΆααααααα
ααΎααααΈα αΌααα αα»ααα·α ααΎαααΆααααααΎααααααΆααα αααα»α Docker αααααα ααΆααααΌαααΆαααααααα αααα»α Docker-compose αααα’αααααααΎαααααΆααααααααααααΆαααααααααααα
ααΌα αααααααΆαααΆαα»ααΈαα½αααααα αΆααααααΎαααΆαα½αααααΆαααααααΎαααΎααααΆαααΆαα»αα αααα»ααααααααααααααααααααααααα
αααα αΆαααααΆααααΊααΆααααααααααΆααααΆαααΎααααααααΆα αααΎαα
α αΆααααΆααααΈααΎααααΈα±ααα’αααΈαααΎααα αααααααα’αΆα αα·ααα·ααααα·ααααααα»αααΆααααα’αΆα ααααΎαα ααΆαα ααααααΆαααα·α ααΆααΆααΆααααααΎαααΆαααααα»αααΆαααααΎα ααα 80 α¬ 443 αααααααΌαααΆαααααΎαα αααααααΈαααααααα αααα»αααα αααααα
ααΎααΎαααΆααααααααΆαααΆαααααααααΆ? ααΎαααΆαα αΆααααΆαα Gitlab Runner ααααΆααααααααααααααααΆααα’ααα
Gitlab α’αα»ααααΆαα±ααα’αααααααΎαααΆα Gitlab Runners αααααΆαα ααα αΆαααΆα αααΎααααααΉαααααΆααα·α αα ααΆααα’αααα ααΆααααααα»αααααααααΉαααα αΎαααααΎαααΆαααΆα
ααΌα ααααβα αΎαβααΎαβαα·αβααΆαβαααα ααΎαβααΆαβαααααβαααα»αβααβααααααβααααβααΎαβαα βααΆ Gitlab Runner αα½αβαααβα’αΆα βαααααααΆαβαααβαα·αβααΆαβαααα αΆβααΆαα½αβααα·ααΆαβααααβααΎαα
ααΎαααΆαααααΆααααααΌα nginx-proxy αα ααΆααααααΈαα αΆααααααΎαααΆα ααααα‘αα αα·αααΆααααααααααα‘αΆα αααααααααααΆααααααααααΆααα’αααα αααα»αααΆα
ααααααααααααΎαααΆααααα‘αΆα αααααααααα½α α αΎαα§ααααααα»αααααΆαααΆααααα‘αΆα ααααααααΆα αααΎαααΆααααααααααααα ααΆα’αΆα ααααΌααααΈααααααααααααααααααααα
ααααΎααααααΎαααααΆααααααααα ααΎα ααα 80 α αΎαααααΌαααΆααααααααΆααα αααα»ααααα»ααα»αααΊαααααααααααΎααααααα
ααΎααΆααααα αΆα’αααΈαααααααααα ααΈααα? αααααΊααΆα’αααΈααααα»αααΆααα’ααααααΎαααΆαααΆ root ααΆαααααΆαααΎαα αααααΊααΆ root αα·αααααΎαα ααΉα root host ααααααααααα
ααααααΆαααΆααααα ααααα·αααΎα’ααααααα αΌααα»αααΊααα ααΆααΉαααΆ root α αΎαα―αααΆααααααΎααααααΎααα αααα»ααα»αααΊααααααααα½αααΆααα·αααα·ααΆ root α
ααααα·αααΎα’αααα’αα·ααααααααΆαα αΌααα αααα»ααα»αααΊααα α αΎαααΆαααααΎααΆααααααααΆαα½αα ααα½ααα ααΈαααααααααααΎαα―αααΆα αααααΆααααα αΆαα ααααΈαα»αααΊααα αααααΆααααααΆααααΆαα―αααΆααα αααα»αααααΆαααΆαααααααΆαααααααΆαααα·αααΆααα·αααα·α αΌαααααΎα
ααΎβααΆβα’αΆα βαααααααΆαβαααβααααβααΆ? α’αααα’αΆα ααααααα’αααααααΎααααΆαααααααΉααα αααα»ααα»αααΊαααα
ααΎααΆααααα αΆα’αααΈααααααΎαα‘αΎααα αααααΎαααααααα’αααααααΎααααΆαα?
αα ααααααααΎαα’αααααααΎααααΆαα ααΎαα αααΎααααα·αααΆαααααααααΆαααααα»αααΌα ααααΆ (UID) αα·αααααααααΆααα’αααααααΎααααΆαα (GID) ααα
ααΎααααΈαααααααΆααααα αΆααααα αααα»ααα»αααΊααα ααΎαααααΎα’αααααααΎααααΆαααααααΆαααααααααΆαα 1000α
αααα»αααααΈααααααΎα ααΆααααααααΆααΉαααΆααα·ααααααΆα’αααα’αα·ααααααααααΎαααααΆααα’ααααααΎ Ubuntu OS α α αΎααα ααΎα’ααΌααα»αααΌ α’αααααααΎααααΆααααααΌαααΆαααααααααΆαα 1000α
ααΎααΎαααΆααααααααα?
α’αΆαα―αααΆα Docker α αααααααααα»αα’αα·αααααααΆαααααα α―αααΆααααα»αααααΆααααααΌαα αα·ααααααβαααβααΆαβααα½αβααΆαααΈβααΈαβα¬βααΈβααβαα»αβαααα»αβααααΆαβααΆβααΊααααΆαβα αΎαα
αααα αΆβααααβαααβααΎαβααΆαβαααααααΆαβααΊβα’αΆα βαααααααΆαβαα½α βα αΎαβααΆαβαααααααΆαβαααααααΆαα
ααΌα ααααβαααα»αβα ααβαα βααΆααβααβααααΆαβαα βαα»αβαααβαααααβααααΆααα
α§ααΆα ααααα½αααΊααααααΆααααααΎααααα Docker αααα α ααΆ Docker Swarm αααα αααααααα αααα’ααα αααα»αα ααααααΎαααΆαα’αααΈαα½ααα αααα»αααα·ααααααααααα’ααααΎαα αα αααα·ααααΆ Docker Swarm α
αα»αααααααΎα±ααααΆαααΆααα’αΆαααα’α½ααααα»αααΆαααααΎααΆαααΆαα½ααααααα ααα»α α₯α‘αΌαβααΎβααααΌαβααΆα αβαααβα‘ααα αα½αααΆααααΌαααΆαααΆααααΆααα ααΌααΆαααα»αα ααΆααα·α αα αα½αααΊααααΎα±ααααΆαααΆαααΆααααα½ααααα»αααΆαα αΌαααααΎαααααα ααα»ααΆααααα ααα»α αααααΆαααααααΆαα
ααααα: www.habr.com