рдирдорд╕реНрддреЗ рд╕рдмреИ! рдЙрдирдХреЛ рдорд╛
╨Э╨░╤З╨░╨╗╨╛
рдпреЛ рд╕рдмреИ рдмрд░рд╕рд╛рддрдХреЛ рд╕реЗрдкреНрдЯреЗрдореНрдмрд░ рд╕рд╛рдБрдЭрдорд╛ рд╕реБрд░реБ рднрдпреЛ рдЬрдм рдореИрд▓реЗ рдбрд┐рдЬрд┐рдЯрд▓ рдорд╣рд╛рд╕рд╛рдЧрд░рдорд╛ $ 5 рдорд╛ рднрд╛рдбрд╛рдорд╛ рд▓рд┐рдПрдХреЛ рдореЗрд╕рд┐рди рд╕рдлрд╛ рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдерд┐рдПрдБ, рдЬреБрди рдбрдХрд░рд▓реЗ рдЖрдлреНрдирд╛ рдЫрд╡рд┐рд╣рд░реВ рд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓реЗ рдЙрдкрд▓рдмреНрдз рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕рдХреЛ рд╕рдмреИ 24 рдЧрд┐рдЧрд╛рдмрд╛рдЗрдЯрд╣рд░реВ рднрд░реЗрдХреЛ рддрдереНрдпрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдлреНрд░рд┐рдЬ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рд╡рд┐рдбрдореНрдмрдирд╛ рдпреЛ рдерд┐рдпреЛ рдХрд┐ рдпреА рд╕рдмреИ рдЫрд╡рд┐рд╣рд░реВ рд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдХреНрд╖рдгрд┐рдХ рдерд┐рдП рд░ рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╛ рдлреНрд░реЗрдорд╡рд░реНрдХрдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рдЧрд░реНрджрд╛ рдореЗрд░реЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкреНрд░рджрд░реНрд╢рди рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рдореИрд▓реЗ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реЗрдВ рд░ рдлреЛрд╣реЛрд░ рд╕рдлрд╛ рдЧрд░реНрди рдХреНрд░реЛрди рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реЗрдВ, рддрд░ рдпрд╕рд▓реЗ рдорджреНрджрдд рдЧрд░реЗрди: рдкреНрд░рддреНрдпреЗрдХ рдкрдЯрдХ рдпреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛ рдореЗрд░реЛ рд╕рд░реНрднрд░рдХреЛ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдЦрд╛рдПрдХреЛ рд░ рд╕рд░реНрднрд░ рд╣реНрдпрд╛рдЩрд┐рдЩ (рдЙрддреНрддрдордорд╛) рд╕рдВрдЧ рд╕рдорд╛рдкреНрдд рднрдпреЛред рдХреЗрд╣рд┐ рдмрд┐рдиреНрджреБрдорд╛, рдореИрд▓реЗ рдЬреЗрдиреНрдХрд┐рдиреНрд╕рд▓рд╛рдИ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдХрд╕рд░реА рдЪрд▓рд╛рдЙрдиреЗ рд░ рдпрд╕рд▓реЗ рдХрд╕рд░реА рдбрдХрд░ рдбреЗрдорди рд╕рдХреЗрдЯ рдорд╛рд░реНрдлрдд рдмрд┐рд▓реНрдб рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рдореЗрдЯрд╛рдЙрди рд╕рдХреНрдЫ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдПрдЙрдЯрд╛ рд▓реЗрдЦ рднреЗрдЯреЗрдВред рдорд▓рд╛рдИ рдпреЛ рд╡рд┐рдЪрд╛рд░ рдорди рдкрд░реНрдпреЛ, рддрд░ рдореИрд▓реЗ рдЕрдЧрд╛рдбреА рдЬрд╛рдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ рд░ рдбрдХрд░ рднрд┐рддреНрд░ рд╕реАрдзрд╛ рдбрдХрд░ рдЪрд▓рд╛рдПрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВред рддреНрдпрд╕ рд╕рдордпрдорд╛, рдпреЛ рдорд▓рд╛рдИ рдбрдХрд░ рдЫрд╡рд┐рд╣рд░реВ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд░ рдЕрд░реНрдХреЛ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ рдкрд░реАрдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рд╕рдмреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреВрд░реНрдг рддрд╛рд░реНрдХрд┐рдХ рд╕рдорд╛рдзрд╛рди рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдереНрдпреЛ (рдпрд╕рд▓рд╛рдИ рд╕реНрдЯреЗрдЬрд┐рдЩ рдХрдиреНрдЯреЗрдирд░ рднрдирд┐рдиреНрдЫ)ред рд╡рд┐рдЪрд╛рд░ -rm рдлреНрд▓реНрдпрд╛рдЧрдХреЛ рд╕рд╛рде рд╕реНрдЯреЗрдЬрд┐рдЩ рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдерд┐рдпреЛ, рдЬрд╕рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рд╕рдореНрдкреВрд░реНрдг рдХрдиреНрдЯреЗрдирд░ рд░ рдпрд╕рдХреЛ рд╕рдмреИ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдореЗрдЯрд╛рдЙрдБрдЫ рдЬрдм рдпреЛ рд░реЛрдХрд┐рдиреНрдЫред рдореИрд▓реЗ рдбрдХрд░рдмрд╛рдЯреИ рдбрдХрд░ рдЫрд╡рд┐рд╕рдБрдЧ рдЯрд┐рдВрдХрд░ рдЧрд░реЗрдВ (
рдЕрднреНрдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдХреЛрди
рдореИрд▓реЗ рдХрдиреНрдЯреЗрдирд░рд▓рд╛рдИ рдорд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрдиреЗ рддрд░рд┐рдХрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕реЗрдЯ рдЧрд░реЗрдВ рд░ рдореЗрд░рд╛ рдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЬрд╛рд░реА рд░рд╛рдЦреЗ, рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рдЕрд╕рдВрдЦреНрдп рдЕрдВрдХреБрд░рд╣рд░реВ рдирд┐рд╕реНрдХрд┐рдпреЛред рдореЗрд░реЛ рдЖрддреНрдо-рдпрд╛рддрдирд╛рдХреЛ рдкрд░рд┐рдгрд╛рдо рдирд┐рдореНрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдерд┐рдпреЛ:
-
рд╣рд╛рдореА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдбрдорд╛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВред
docker run --privileged -it docker:18.09.6
рдХрдиреНрдЯреЗрдирд░рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН, рджрд╛рдпрд╛рдБ рд╡рд╛ рдмрд╛рдпрд╛рдБ рдЪрд░рдг рд░ рддрдкрд╛рдИрдВрдХреЛ DinD рдХрджреНрджреВрдорд╛ рдкрд░рд┐рдгрдд рд╣реБрдиреНрдЫред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рд░реА рд╣реБрдБрджрд╛ рдЪреАрдЬрд╣рд░реВ рдкреНрд░рд╛рдпрдГ рдмрд┐рдЧреНрд░рдиреНрдЫред
рд╣рд╛рдореА рддреБрд░реБрдиреНрддреИ рдЦреЛрд▓рдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдиреБрдкрд░реНрдЫред -
рд╣рд╛рдореА рдХреБрди рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдХреЛрд╢рд┐рд╕ рдЧрд░реНрджреИрдЫреМрдВ (рдЙрддреНрддрд░: рдХреБрдиреИ рдкрдирд┐ рд╣реЛрдЗрди), рддрд░ рдЬреЗ рднрдП рдкрдирд┐ рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:
docker ps
рддрдкрд╛рдИрдВ рдереЛрд░реИ рдЫрдХреНрдХ рдкрд░реНрдиреБрд╣реБрдиреЗрдЫ, рддрд░ рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рдбрдХрд░ рдбреЗрдорди рдкрдирд┐ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЫреИрди:
error during connect: Get http://docker:2375/v1.40/containers/json: dial tcp: lookup docker on 192.168.65.1:53: no such host
-
рдпрд╕рд▓рд╛рдИ рдЖрдлреИ рдЪрд▓рд╛рдФрдВ:
dockerd &
рдЕрд░реНрдХреЛ рдЕрдкреНрд░рд┐рдп рдЖрд╢реНрдЪрд░реНрдп:
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: Iptables not found
-
iptables рд░ bash рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рд╕рдмреИ рдХреБрд░рд╛ sh рдорд╛ рднрдиреНрджрд╛ bash рдорд╛ рдХрд╛рдо рдЧрд░реНрди рдзреЗрд░реИ рд░рдорд╛рдЗрд▓реЛ рдЫ):
apk add --no-cache iptables bash
-
рдмреНрдпрд╛рд╕ рд╕реБрд░реБ рдЧрд░реМрдВред рдЕрдиреНрддрдорд╛ рд╣рд╛рдореА рд╕рд╛рдорд╛рдиреНрдп рдЦреЛрд▓рдорд╛ рдлрд░реНрдХрд┐рдпреМрдВ
-
рдбрдХрд░ рдлреЗрд░рд┐ рд╕реБрд░реБ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ:
dockerd &
рд╣рд╛рдореАрд▓реЗ рд▓рдЧрд╣рд░реВрдХреЛ рд▓рд╛рдореЛ рдкрд╛рдирд╛ рджреЗрдЦреНрдиреБ рдкрд░реНрдЫ рдЬрд╕рдХреЛ рдЕрдиреНрддреНрдп рд╣реБрдиреНрдЫ:
INFO[2019-11-25T19:51:19.448080400Z] Daemon has completed initialization INFO[2019-11-25T19:51:19.474439300Z] API listen on /var/run/docker.sock
-
рдЗрдиреНрдЯрд░ рдерд┐рдЪреНрдиреБрд╣реЛрд╕реНред рд╣рд╛рдореА рдмреНрдпрд╛рд╕рдорд╛ рдлрд░реНрдХрд┐рдпреМрдВред
рдЕрдмрджреЗрдЦрд┐, рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ рдЕрдиреНрдп рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕реБрд░реВ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ, рддрд░ рдХреЗ рд╣реБрдиреНрдЫ рдпрджрд┐ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ рдЕрд░реНрдХреЛ рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реВ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рд╡рд╛ рдХреЗрд╣рд┐ рдЧрд▓рдд рднрдпреЛ рд░ рдХрдиреНрдЯреЗрдирд░ рдХреНрд░реНрдпрд╛рд╕ рд╣реБрдиреНрдЫ? рд╕рдмреИ рдлреЗрд░рд┐ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдЖрдлреНрдиреИ DinD рдХрдиреНрдЯреЗрдирд░ рд░ рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрд╣рд░реВ
рдорд╛рдерд┐рдХрд╛ рдЪрд░рдгрд╣рд░реВ рдмрд╛рд░рдореНрдмрд╛рд░ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрдирдмрд╛рдЯ рдмрдЪреНрди, рдореИрд▓реЗ рдореЗрд░реЛ рдЖрдлреНрдиреИ DinD рдХрдиреНрдЯреЗрдирд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдВ:
рдХрд╛рдо рдЧрд░реНрдиреЗ DinD рд╕рдорд╛рдзрд╛рдирд▓реЗ рдорд▓рд╛рдИ рдбрдХрд░ рднрд┐рддреНрд░ рдбрдХрд░рд▓рд╛рдИ рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдкрдорд╛ рдЪрд▓рд╛рдЙрди рд░ рдердк рд╕рд╛рд╣рд╕реА рдкреНрд░рдпреЛрдЧрд╣рд░реВ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рджрд┐рдпреЛред
рдо рдЕрд╣рд┐рд▓реЗ MySQL рд░ Nodejs рдЪрд▓рд╛рдЙрдиреЗ рдПрдЙрдЯрд╛ рдпрд╕реНрддреЛ (рд╕рдлрд▓) рдкреНрд░рдпреЛрдЧрдХреЛ рд╡рд░реНрдгрди рдЧрд░реНрди рдЬрд╛рдБрджреИрдЫреБред
рд╕рдмреИрднрдиреНрджрд╛ рдЕрдзреАрд░рд▓реЗ рдпрд╣рд╛рдБ рдХрд╕реНрддреЛ рдерд┐рдпреЛ рджреЗрдЦреНрди рд╕рдХреНрдЫ
рддреНрдпрд╕реЛ рднрдП, рд╕реБрд░реБ рдЧрд░реМрдВ:
-
рд╣рд╛рдореА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореЛрдбрдорд╛ DinD рд╕реБрд░реБ рдЧрд░реНрдЫреМрдВред DinD рдХреЛ рдпрд╕ рд╕рдВрд╕реНрдХрд░рдгрдорд╛, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░рд╛ рдмрд╛рд▓ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдмреИ рдкреЛрд░реНрдЯрд╣рд░реВрд▓рд╛рдИ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рдирдХреНрд╕рд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ (рдо рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕рдорд╛ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ рдЫреБ)
docker run --privileged -it -p 80:8080 -p 3306:3306 alekslitvinenk/dind
рд╣рд╛рдореА рдмреНрдпрд╛рд╕рдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрдЫреМрдВ, рдЬрд╣рд╛рдБрдмрд╛рдЯ рд╣рд╛рдореА рддреБрд░реБрдиреНрддреИ рдмрд╛рд▓ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред
-
MySQL рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=strongpassword -d -p 3306:3306 mysql
-
рд╣рд╛рдореА рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рддреНрдпрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВ рдЬрд╕рд░реА рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдЫреМрдВред рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрдЫ рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реМрдВред
-
рджреЛрд╕реНрд░реЛ рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
docker run -d --rm -p 8080:8080 alekslitvinenk/hello-world-nodejs-server
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдкреЛрд░реНрдЯ рдореНрдпрд╛рдкрд┐рдЩ рдареАрдХ рд╣реБрдиреЗрдЫ 8080:8080, рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдкреЛрд░реНрдЯ 80 рд▓рд╛рдИ рд╣реЛрд╕реНрдЯрдмрд╛рдЯ рдкреНрдпрд╛рд░реЗрдиреНрдЯ рдХрдиреНрдЯреЗрдирд░рдорд╛ рдкреЛрд░реНрдЯ 8080 рдорд╛ рдореНрдпрд╛рдк рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВред
-
рд╣рд╛рдореА рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯрдорд╛ рдЬрд╛рдиреНрдЫреМрдВ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рд╕рд░реНрднрд░рд▓реЗ "рд╣реЗрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреНрдЫред
рдореЗрд░реЛ рдХреЗрд╕рдорд╛, рдиреЗрд╕реНрдЯреЗрдб рдбрдХрд░ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдПрдХрджрдо рд╕рдХрд╛рд░рд╛рддреНрдордХ рднрдпреЛ рд░ рдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд░ рд╕реНрдЯреЗрдЬрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫреБред рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдХрд┐ рдпреЛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд░ рдЬреЗрдирдХрд┐рдиреНрд╕ рдПрдХреНрд╕ рднрдиреНрджрд╛ рдзреЗрд░реИ рд╣рд▓реНрдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛред рддрд░ рдпреЛ рдореЗрд░реЛ рд╡реНрдпрдХреНрддрд┐рдкрд░рдХ рд╡рд┐рдЪрд╛рд░ рд╣реЛред
рдорд▓рд╛рдИ рд▓рд╛рдЧреНрдЫ рдЖрдЬрдХреЛ рд▓реЗрдЦрдХреЛ рд▓рд╛рдЧрд┐ рдпрддрд┐ рдорд╛рддреНрд░ рд╣реЛред рдЕрд░реНрдХреЛ рд▓реЗрдЦрдорд╛ рдо рдбрдХрд░рдорд╛ рджреЛрд╣реЛрд░рд┐рдиреЗ рдбрдХрд░ рдЪрд▓рд╛рдЙрдиреЗ рд░ рдиреЗрд╕реНрдЯреЗрдб рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рдЧрд╣рд┐рд░реЛ рдорд╛рдЙрдиреНрдЯ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрд╣рд░реВ рдЪрд▓рд╛рдЙрдирдХреЛ рд╕рд╛рде рдердк рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрдиреЗрдЫреБред
PS рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрдкрдпреЛрдЧреА рд▓рд╛рдЧреНрдпреЛ рднрдиреЗ, рдХреГрдкрдпрд╛ рдпрд╕рд▓рд╛рдИ GitHub рдорд╛ рддрд╛рд░рд╛ рджрд┐рдиреБрд╣реЛрд╕реН, рдпрд╕рд▓рд╛рдИ рдлреЛрд░реНрдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЖрдлреНрдирд╛ рд╕рд╛рдереАрд╣рд░реВрд▓рд╛рдИ рднрдиреНрдиреБрд╣реЛрд╕реНред
Edit1 2 рднрд┐рдбрд┐рдпреЛрд╣рд░реВрдорд╛ рдХреЗрдиреНрджреНрд░рд┐рдд рддреНрд░реБрдЯрд┐рд╣рд░реВ рд╕рдЪреНрдпрд╛рдЗрдпреЛ
рд╕реНрд░реЛрдд: www.habr.com