рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕
рдПрдХ рдареАрдХ рджрд┐рди рдореБрдЭреЗ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рд╡реИрдЧреНрд░рд╛рдВрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрдВрдЧ рдЖ рдЪреБрдХрд╛ рдерд╛ рдФрд░ рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХрд▓ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд╣реМрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреЛ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, рд╣рд┐рдкрд╕реНрдЯрд░ рдбреЙрдХрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕реБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЕрдЧрд▓рд╛, рдореИрдВ рдХреЗрд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдкрд╛рдж рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реИрди рдкрд░ рдПрдХ рдбреЙрдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдпрдерд╛рд╕рдВрднрд╡ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред
рдореВрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдвреЗрд░:- рдХрд░реНрддрд╛
- рд╕рд┐рдореНрдлрдиреА 4
- рдирдЧреНрдиреЗрдХреНрд╕
- php-fpm
- postgresql
- рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ
- рдЦрд░рдЧреЛрд╢
- рдЬреЗрдирдХрд┐рдВрд╕
рд▓реЛрд╣рд╛:- рдУрдПрд╕ Ubuntu 16.04 рдХреЗ рддрд╣рдд рд▓реИрдкрдЯреЙрдк
- рдХреЗрд╡реАрдПрдо рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкрд░ рдЙрддреНрдкрд╛рджрди рд╕рд░реНрд╡рд░
рдХреНрдпреЛрдВ, рддрдХрдиреАрдХреА рдвреЗрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рд▓реЛрд╣реЗ рдХреЗ рдвреЗрд░ рдХреЛ рднреА рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИ?рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХрднреА рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ, рдЖрдкрдХреЗ рд▓реИрдкрдЯреЙрдк рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдпрд╛ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдкрд╣рд▓рд╛ рдФрд░ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрд╣рд▓реВ рдЖрдкрдХреЗ рд▓реИрдкрдЯреЙрдк рдХрд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИред рдбреЙрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реИред рдпрджрд┐ рдЖрдк Windows рдпрд╛ Mac рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ 100% рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рдпреЗ рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдВрдЧреА рдФрд░ рдпрджрд┐ рдЖрдк "google" рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХреИрд╕реЗ рддрдп рд╣реЛрддрд╛ рд╣реИ, рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рджреВрд╕рд░рд╛ рд╕рд╡рд╛рд▓ рд╣реЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред KVM рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рд╡реАрдкреАрдПрд╕ рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗрд╡реАрдПрдо рд╕реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИ рдФрд░ рдЖрдк рд╡реАрдкреАрдПрд╕ рдкрд░ рдбреЙрдХрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡реАрдкреАрдПрд╕ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИред
рд╕рдмрдЯреЛрдЯрд▓: рдбреЙрдХрдЯрд░ рдкрд░ рд╕рдмрд╕реЗ рддреЗрдЬ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдЙрдмрдВрдЯреВ рдХреЛ рд╕реНрдерд╛рдиреАрдп рдУрдПрд╕ рдФрд░ рдХреЗрд╡реАрдПрдо рд╣реЛрд╕реНрдЯрд┐рдВрдЧ (рдпрд╛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд░реНрд╡рд░) рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрдирдирд╛ рд╕рдмрд╕реЗ рдЙрдЪрд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╣рд╛рдиреА рдЗрди рджреЛ рдШрдЯрдХреЛрдВ рдкрд░ рд╕рдЯреАрдХ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧреАред
LAN рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░-рдХрдореНрдкреЛрдЬрд╝
рд╕реНрдерд╛рдкрдирд╛
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕реНрд╡рдпрдВ docker рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк
ubuntu рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ
рд▓рд┐рдВрдХ рдкрд░ рд╕реНрдерд╛рдкрдирд╛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдЖрдкрдХреЛ docker рдФрд░ docker-compose рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдпрд╛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░:
curl -sSl https://get.docker.com/ | sh
рдпрд╣ рдХрдорд╛рдВрдб рдбреЙрдХрдЯрд░ рдФрд░ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рджреЛрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде docker рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
docker --version
рдореИрдВ рдЗрд╕ рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ docker version 18.06.0-ce рдкрд░ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред
рд╕реНрдерд╛рдкрдирд╛ рдкреВрд░реНрдг рд╣реИ!
рдЬрд╛рдЧрд░реВрдХрддрд╛
рдХреБрдЫ рдХрдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЖрдкрдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХреЗрд╡рд▓ рд╡реИрдЧреНрд░рдВрдЯ рдпрд╛ рдХреБрдЫ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдмрд╣реБрдд рд╣реА рдЕрд╕рд╛рдорд╛рдиреНрдп рдФрд░ рд╕рдордЭ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рд╣реИред
рдореИрдВ рд╡реИрдЧреНрд░рд╛рдВрдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рдЕрдм рдХрдИ рд▓реЛрдЧ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реИрдЧреНрд░рд╛рдиреНрдЯ рдФрд░ рдбреЛрдХрд░ рдХреА рддреБрд▓рдирд╛ рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИред рд╣рд╛рдВ, рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдирдХреА рддреБрд▓рдирд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдЙрди рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдХреЗрд╡рд▓ рд╡реЛрдЧреНрд░рд╛рдВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдбреЙрдХрдЯрд░ рдХреА рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВред
рдХрдВрдЯреЗрдирд░ рдХреА "рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░" рдореЗрд░реА рджреГрд╖реНрдЯрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреГрдердХ рджреБрдирд┐рдпрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдХреА рдХрд▓реНрдкрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рдЫреЛрдЯрд╛ рд╡реИрдЧреНрд░реЗрдВрдЯ рдерд╛ рдЬрд┐рд╕ рдкрд░ рдХреЗрд╡рд▓ 1 рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдирдЧреНрдиреЗрдХреНрд╕ рдпрд╛ рдкреАрдПрдЪрдкреАред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдЖрдорддреМрд░ рдкрд░ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реЗ рдЕрд▓рдЧ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрд╢реНрдХрд┐рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рд╕реЗ, рдЖрдк рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░реЗрдВ рдФрд░ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдПрдХ рдЕрд▓рдЧ рдЖрднрд╛рд╕реА рдорд╢реАрди рд╣реИ, рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрддреА рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╕рд╛рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рд╡реИрдЧреНрд░реИрдВрдЯ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдХрд╛рдЯрддрд╛ рд╣реИ, рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рддрд╛ рд╣реИ, рдЙрд╕ рдкрд░ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ред рдЕрдВрддрддрдГ, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
тЖТ
рдпреЛрдЬрдирд╛рдмрджреНрдз рджреЗрдЦреЗрдВрдбреЙрдХрд░, рдмрджрд▓реЗ рдореЗрдВ, рдореМрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИред рдбреЙрдХрд░ рдЕрдкрдиреЗ рдЕрд▓реНрдкрд╛рдЗрди рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдФрд░ 1-3 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддрд╛ рд╣реИ (рдЕрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдорд╛рдЗрдХреНрд░реЛ-рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ), рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП php рдпрд╛ nginxред рдЗрд╕реА рд╕рдордп, рдбреЙрдХрд░ рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдВрдд рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
тЖТ
рдпреЛрдЬрдирд╛рдмрджреНрдз рджреЗрдЦреЗрдВрдкреНрд░рддреНрдпреЗрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢рд╛рд▓ рдмрд╣реБрдордд рдПрдХ рдФрд░ рдЫрд╡рд┐ рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдмрдВрдЯреВ рдХреНрд╕реАрдирд▓ рдпрд╛ рдЕрд▓реНрдкрд╛рдЗрди рдпрд╛ рдбреЗрдмрд┐рдпрди, рдЬрд┐рд╕ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреНрд░рд╛рдЗрд╡рд░ рдФрд░ рдЕрдиреНрдп рдШрдЯрдХ рд╢реАрд░реНрд╖ рдкрд░ рд▓реБрдврд╝рдХреЗ рд╣реБрдП рд╣реИрдВред
рдореЗрд░реА рдкрд╣рд▓реА рдЫрд╡рд┐ php-fpm рдХреЗ рд▓рд┐рдП рдереАред рдореЗрд░реА рдЫрд╡рд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ php рдЫрд╡рд┐ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддреА рд╣реИ: 7.2-fpm-alpine3.6ред рдпрд╣реА рд╣реИ, рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЫрд╡рд┐ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, pdo_pgsql, рдХрд▓реНрдкрдирд╛, рдЬрд╝рд┐рдк рдФрд░ рдЗрддрдиреЗ рдкрд░ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреА рдЫрд╡рд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ
рдпрд╣рд╛рдВ рдХрд░ рд╕рдХрддреЗ
рд╣реИрдВ ред
рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ рдЕрдЧрд░ рд╡реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреНрдЬрд╝реЗрдирд┐рдпрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрд▓реНрдкрд╛рдЗрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрджрд┐ рд╡реЗ рдмрдирд╛рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рд╡реЗ рдереЛрдбрд╝рд╛ рдмрд╡рд╛рд╕реАрд░ рджреЗрддреЗ рд╣реИрдВред рдбреЙрдХрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрд▓реНрдкрд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реБрдирд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡рдЧреНрд░рд╛рдВрдд рдиреЗ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдмрдВрдЯреВ рдХреНрд╕реАрдирд▓ рдХреЗ рддрд╣рдд рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред рдЕрд▓реНрдкрд╛рдЗрди рдПрдХ рдЦрд╛рд▓реА рд▓рд┐рдирдХреНрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ (рдЪрд░рдо рдиреНрдпреВрдирддрдо)ред рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмреЗрд╣рдж рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╣реА рдПрдкреНрдЯ-рдЧреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ (рдЬреЛ рдЖрдкрдХреЛ рдЖрджрдд рд╣реИ), рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдкреАрдХреЗ рдРрдб рд╣реИ рдФрд░ рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдХрд╛рдлреА рд╕рдордЭрджрд╛рд░ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред рдПрд▓реНрдкрд╛рдЗрди рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рдЗрд╕рдХрд╛ рд╡рдЬрди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЧрд░ рдЬрд╝реЗрдирд┐рдпрд▓ рдХрд╛ рд╡рдЬрди (рд╕рд╛рд░) 500 рдмреИрдЧ рд╣реИ, рддреЛ рдЕрд▓реНрдкрд╛рдЗрди (рд╕рд╛рд░) рд▓рдЧрднрдЧ 78 рдмреИрдЧ рд╣реИред рдпрд╣ рднреА рдХреНрдпрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдФрд░ рдпрд╣ рдмрд┐рд▓реНрдб рдЧрддрд┐ рдФрд░ рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдЕрдВрддрд┐рдо рд╡рдЬрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрдд рдореЗрдВ рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрдВрдЧреЗред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ 5 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдВрдЯреЗрдирд░ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ xenial рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЙрдирдХрд╛ рдХреБрд▓ рд╡рдЬрди 2.5 рдЧрд┐рдЧреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рдФрд░ рдЕрд▓реНрдкрд╛рдЗрди - рдХреЗрд╡рд▓ рд▓рдЧрднрдЧ 40 рдмреИрдЧред рдЗрд╕рд▓рд┐рдП, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрдВрдЯреЗрдирд░ рдпрдерд╛рд╕рдВрднрд╡ рдкрддрд▓реЗ рд╣реЛрдВред (рдЕрд▓реНрдкрд╛рдЗрди -
рдЕрд▓реНрдкрд╛рдЗрди рдкреИрдХреЗрдЬ рдореЗрдВ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ)ред
рдбреЙрдХрдЯрд░ рд╣рдм рдкрд░ рд╣рд░ рдЬрдЧрд╣
рд╡реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐
docker run
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреИрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡реЗ рдпрд╣ рдирд╣реАрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕реЗ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИ рдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп рд╢реБрд░реВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд рдХрдо рд╢рд┐рдХрд╛рд░ рд╣реИ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рдХрдВрдЯреЗрдирд░, рдиреЗрдЯ, рдЦреБрд▓реЗ рдкреЛрд░реНрдЯ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рд╢реБрд░реВ рдХрд░реЗрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝ рдмрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдпрдорд▓ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЙрди рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрдерд╛рдиреАрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдирд┐рд░реНрдорд╛рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
version: '3.1' services: php-fpm: image: otezvikentiy/php7.2-fpm:0.0.11 ports: - '9000:9000' volumes: - ../:/app working_dir: /app container_name: 'php-fpm' nginx: image: nginx:1.15.0 container_name: 'nginx' working_dir: /app ports: - '7777:80' volumes: - ../:/app - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf postgres: image: postgres:9.6 ports: - '5432:5432' container_name: 'postgresql' working_dir: /app restart: always environment: POSTGRES_DB: 'db_name' POSTGRES_USER: 'db_user' POSTGRES_PASSWORD: 'db_pass' volumes: - ./data/dump:/app/dump - ./data/postgresql:/var/lib/postgresql/data rabbitmq: image: rabbitmq:3.7.5-management working_dir: /app hostname: rabbit-mq container_name: 'rabbit-mq' ports: - '15672:15672' - '5672:5672' environment: RABBITMQ_DEFAULT_USER: user RABBITMQ_DEFAULT_PASS: password RABBITMQ_DEFAULT_VHOST: my_vhost elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.3.0 container_name: 'elastic-search' environment: - discovery.type=single-node - "discovery.zen.ping.unicast.hosts=elasticsearch" - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ports: - 9200:9200 - 9300:9300 working_dir: /app volumes: - ../:/app - ./data/elasticsearch:/usr/share/elasticsearch/data volumes: elasticsearch: postgresql:
SF4 рдХреЗ рд▓рд┐рдП docker-compose.yaml рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдореВрд╣ рд╣реИ: nginx, php-fpm, postgresql, rabbitmq (рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), elasticsearch (рдпрджрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред рд╕реНрдерд╛рдиреАрдп рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдПрдХ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдпреЗ рдЫрд╡рд┐, рд╡реЙрд▓реНрдпреВрдо, рдкреЛрд░реНрдЯ, рдкрд░реНрдпрд╛рд╡рд░рдг, working_dir рдФрд░ container_name рд╣реИрдВред рдпрд╣ рдпрд╛ рдЙрд╕ рдЫрд╡рд┐ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ
hub.docker.com рдкрд░ рдЗрд╕рдХреЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдмрд╕ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдбреЙрдХ рд░рди рдХрдорд╛рдВрдб рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣рд╛рдВ RabbitMQ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд╡рд┐
рд╣реИ ред рдЬрдм рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ THIS рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдорд┐рд╢реНрд░рд┐рдд рднрд╛рд╡рдирд╛рдУрдВ рдФрд░ рднрд╛рд╡рдирд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ рдЯреИрдЧ рдЗрдВрдЧрд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ рдЯреИрдЧ - рд╡рд┐рднрд┐рдиреНрди рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реИрдВ, рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╕реНрддрд╛рд░ рдпреЛрдЧреНрдп рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреИрдЧ 3.7.7-рдЕрд▓реНрдкрд╛рдЗрди рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдЫрд╡рд┐ рддреБрд▓рдирд╛ рдореЗрдВ рдкрддрд▓реА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 3.7.7, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрд▓реНрдкрд╛рдЗрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдЯреИрдЧ рдореЗрдВ рднреА рдЕрдХреНрд╕рд░ рдЖрд╡реЗрджрди рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдЖрд╡реЗрджрди рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдЕрд▓реНрдкрд╛рдЗрди рдЫрд╡рд┐ рдЪреБрдирддрд╛ рд╣реВрдВред
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдЯреИрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдФрд░ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж - рдлрд┐рд░ рдЕрдХреНрд╕рд░ рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:
docker run -d --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq:3-management
рдФрд░ рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдбрдмреНрд▓реНрдпреВрдЯреАрдПрдл рд╣реИ? рдЗрд╕реЗ рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?
рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд░реЗрдЦрд╛ рд╕рднреА рд╕рдорд╛рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдпрдорд▓ рдлрд╝рд╛рдЗрд▓, рдХреЗрд╡рд▓ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рдореЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, -рдЗ рдПрдХ рдРрд╕рд╛ рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣рд╛рдБ рднреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреИрд╕реЗ -p - рдпреЗ рдРрд╕реЗ рдкреЛрд░реНрдЯ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдпрдорд▓ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдЫрд╡рд┐ рдХреЛ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ "Google" рдХреЛ "рд░рди" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдпрд╛рдореНрд▓ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреВрд░рд╛ рдирд╛рдо рд▓рд╛рдЧреВ рдХрд░реЗрдВред
рдЕрдм рд╡рд╛рдкрд╕ docker-compose.yml рдкрд░, рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрджреНрдзреГрдд рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдЖрдзрд┐рдХрд╛рд░рд┐рдХ php7.2-fpm-рдЕрд▓реНрдкрд╛рдЗрди рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдореЗрд░реА php7.2 рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдкрдХреЛ рдЗрддрдиреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред LAN рдХреЗ рд▓рд┐рдП рд╢реЗрд╖ рдЪрд┐рддреНрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореВрд▓ рдФрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╣реИрдВред
рдЫрд╡рд┐ - рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реА рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП (рдЦрд░рдЧреЛрд╢: рей.рел.--рдкреНрд░рдмрдВрдзрди-рдЕрд▓реНрдкрд╛рдЗрди)ред
рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ - рдЙрди рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ рдЬреЛ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдЫрд╡рд┐ рдкреНрд░рд▓реЗрдЦрди рджреЗрдЦреЗрдВ)ред рдЙрджрд╛рд╣рд░рдг nginx рдкреЛрд░реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 80 рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЖрдк рдкреЛрд░реНрдЯ 80 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣рд╛рдВ 80:80 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреАред рдпрд╛ рдЖрдк 7777: 80 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдпреВрдЖрд░рдПрд▓ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 7777 рдкрд░ рд╣реЛрдЧреАред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рд╣реА рдореЗрдЬрдмрд╛рди рдкрд░ рдХрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╡реЙрд▓реНрдпреВрдо - рд╕рд╛рдЭрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдпрд╣рд╛рдВ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ ~ / рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / my-sf4-app рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдФрд░ php рдХрдВрдЯреЗрдирд░ рдХреЛ / app рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (in / var / www / my-sf4-app рдХреЗ рд╕рдорд╛рди) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рддрджрдиреБрд╕рд╛рд░, рд╡реЙрд▓реНрдпреВрдо рдореЗрдВ рд╣рдо
~/projects/my-sf4-app:/app
рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдКрдкрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ docker-compose.yml рдореЗрдВ рджреЗрдЦреЗрдВ (рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдкреЗрдХреНрд╖ рддрд░реАрдХреЗ рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рд╣реИ ../:/app))ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐
php bin/console doctrine:migrations:migrate
ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрдЯрд╛ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, postgresql, рдЖрдк рдбреЗрдЯрд╛рдмреЗрд╕ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЬрдм рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдбрдВрдк рдпрд╛ рдЬреБрдбрд╝рдирд╛рд░ рд░реЛрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
working_dir - рдХрдВрдЯреЗрдирд░ рдХреА рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, / app (рдпрд╛ рдпреЛрдирд┐ / var / www / my-sf4-app рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛)ред
рдкрд░реНрдпрд╛рд╡рд░рдг - рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЪрд░ рдпрд╣рд╛рдВ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, rabbitmq рдХреЗ рд▓рд┐рдП, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, postgresql рдХреЗ рд▓рд┐рдП, рдЖрдзрд╛рд░ рдирд╛рдо, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо, рдкрд╛рд╕рд╡рд░реНрдб рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХрдВрдЯреЗрдирд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░_рдирд╛рдо рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреНрд╖реЗрддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣реИрд╢ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдо рдЕрд╕рд╛рдЗрди рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдпреЗ рдореБрдЦреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╛рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм, рдпрд╣ рд╕рдм рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ
docker-compose up -d
рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ docker-compose рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рдд рд╣реИред
LAN рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдБ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рд╣реИ?
LAN рдХреЗ рд▓рд┐рдП рдореИрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдЯ рдореЗрдВ docker рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдкреЛрд╕реНрдЯрдЧреНрд░реИрдХреНрд╕реНрд▓ рдФрд░ рдЗрд▓рд╛рд╕реНрдЯрд┐рдХреНрд╕ рдЦреЛрдЬ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реВрдВ, рддрд╛рдХрд┐ рдЬрдм рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдЬреБрдбрд╝рдирд╛рд░ рд░реЛрд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдПрдХ рдирдЧрдиреЗрдХреНрд╕ рдбреИрдбреА рднреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рд╕реНрдерд╛рдиреАрдп рдирдЧреАрдиреЗрдХреНрд╕ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд┐рдЧрд░ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЗ рд╕рд╛рде docker-compose.yml рдореЗрдВ рдЗрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рдореЗрдВ docker рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП bash рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, start.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕рдВрдЧреАрддрдХрд╛рд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рд╡реЗ рд╕рд┐рд░реНрдл рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
Start.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрджрд╛рд╣рд░рдг
Php-fpm-command.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдЙрджрд╛рд╣рд░рдг
рдХрдиреЗрдХреНрдЯ-to-php-fpm.sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдЙрджрд╛рд╣рд░рдг #!/usr/bin/env bash docker exec -i -t --privileged php-fpm bash
рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХрд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдпрд╣реАрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдмрдзрд╛рдИ рд╣реЛ, рдЖрдк рд╕рдорд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдо рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! )
рдЙрддреНрдкрд╛рджреЛрдВ
рдЯреНрд░реЗрдирд┐рдВрдЧ
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реИрди рдкрд░ рдХреБрдЫ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╛ рдЯреЗрд╕реНрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдк рдХреЗрд╡реАрдПрдо рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдпрд╛ рдПрдпрд░ рдХрдВрдбреАрд╢рдирд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЕрдЧрд▓реЗ рдХрдорд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдПрдХ рдЙрддреНрдкрд╛рдж рдпрд╛ рдмреАрдЯрд╛ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рд╕рд░реНрд╡рд░ рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд▓рд┐рдирдХреНрд╕) рдФрд░ рдбреЙрдХрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбреЙрдХрд░ рдХреЛ рд▓реИрди рдкрд░ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИрдВред
рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рдбреЙрдХрд░ рд▓реИрди рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рдХреЗрд╡рд▓ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдФрд░ docker-compose рдХреЛ рдирд╣реАрдВ рд▓реЗ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдЖрдк рд╕реАрдзреЗ рдбреЙрдХ-рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдбреЙрдХрдЯрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдбреЙрдХ рд╕реНрд╡реАрдорд░ рдФрд░ рдбреЙрдХ рд╕реНрдЯреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдкрд░ рд╕рд╣реА рд╣реИ, рддреЛ рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рдХреЗрд╡рд▓ рдЕрдиреНрдп рдЖрджреЗрд╢реЛрдВ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрд╕ docker рдореЗрдВ рдЭреБрдВрдб рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рд╣реИ (рдлрд┐рд░ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛рд░, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛)ред
рдкреБрдирд╢реНрдЪ: рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡реИрдЧреНрд░рдВрдЯ рдкрд░ рдбреЙрдХ рд╕реНрд╡реЙрд░реНрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ (рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ)ред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдиреБрд╕реНрдЦрд╛ - рдЙрддреНрдкрд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╡реИрдЧреНрд░реЗрдВрдЯ рдЙрдард╛рдПрдВ рдФрд░ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред
Docker swarm рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдХреБрдЫ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
docker swarm init --advertise-addr 192.168.***.** (ip- ) mkdir /app ( app) chown docker /app ( ) docker stack deploy -c docker-compose.yml my-first-sf4-docker-app
рдЖрдЗрдП рдЕрдм рдЗрд╕ рд╕рдм рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
docker swarm init --advertise-addr - рдпрд╣
docker swarm рдХреЛ рд╕реАрдзреЗ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рд▓рд┐рдВрдХ рдХреЛ fumbles рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЗрд╕ "swarm" рдореЗрдВ рдХреБрдЫ рдЕрдиреНрдп рд╕рд░реНрд╡рд░ рдХреЛ рд╣реБрдХ рдХрд░ рд╕рдХреЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВред
mkdir / app && chown .. - рдЖрдкрдХреЛ рдбреЙрдХрдЯрд░ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреА рдХрдореА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢рд┐рдХрд╛рдпрдд рди рдХрд░реЗред
docker stack рддреИрдирд╛рддреА -c docker-compose.yml my-first-sf4-docker-app - рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕реНрд╡рдпрдВ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ,
docker-compose up -d рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рдХреЗрд╡рд▓
docker swarm рдХреЗ рд▓рд┐рдПред
рдХрд┐рд╕реА рднреА рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдорд╛рди docker-compose.yaml рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрддреНрдкрд╛рджрдХ / рдмреАрдЯрд╛ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╣реИред
version: '3.1' services: php-fpm: image: otezvikentiy/php7.2-fpm:0.0.11 ports: - '9000:9000' networks: - my-test-network depends_on: - postgres - rabbitmq volumes: - /app:/app working_dir: /app deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager] nginx: image: nginx:1.15.0 networks: - my-test-network working_dir: /app ports: - '80:80' depends_on: - php-fpm volumes: - /app:/app - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager] postgres: image: postgres:9.6 ports: - '5432:5432' working_dir: /app networks: - my-test-network secrets: - postgres_db - postgres_user - postgres_pass environment: POSTGRES_DB_FILE: /run/secrets/postgres_db POSTGRES_USER_FILE: /run/secrets/postgres_user POSTGRES_PASSWORD_FILE: /run/secrets/postgres_pass volumes: - ./data/dump:/app/dump - ./data/postgresql:/var/lib/postgresql/data deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager] rabbitmq: image: rabbitmq:3.7.5-management networks: - my-test-network working_dir: /app hostname: my-test-sf4-app-rabbit-mq volumes: - /app:/app ports: - '5672:5672' - '15672:15672' secrets: - rabbitmq_default_user - rabbitmq_default_pass - rabbitmq_default_vhost environment: RABBITMQ_DEFAULT_USER_FILE: /run/secrets/rabbitmq_default_user RABBITMQ_DEFAULT_PASS_FILE: /run/secrets/rabbitmq_default_pass RABBITMQ_DEFAULT_VHOST_FILE: /run/secrets/rabbitmq_default_vhost deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager] elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.3.0 networks: - my-test-network depends_on: - postgres environment: - discovery.type=single-node - discovery.zen.ping.unicast.hosts=elasticsearch - bootstrap.memory_lock=true - ES_JAVA_OPTS=-Xms512m -Xmx512m ports: - 9200:9200 - 9300:9300 working_dir: /app volumes: - /app:/app - ./data/elasticsearch:/usr/share/elasticsearch/data deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager] jenkins: image: otezvikentiy/jenkins:0.0.2 networks: - my-test-network ports: - '8080:8080' - '50000:50000' volumes: - /app:/app - ./data/jenkins:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager] volumes: elasticsearch: postgresql: jenkins: networks: my-test-network: secrets: rabbitmq_default_user: file: ./secrets/rabbitmq_default_user rabbitmq_default_pass: file: ./secrets/rabbitmq_default_pass rabbitmq_default_vhost: file: ./secrets/rabbitmq_default_vhost postgres_db: file: ./secrets/postgres_db postgres_user: file: ./secrets/postgres_user postgres_pass: file: ./secrets/postgres_pass
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рдлрд╝рд╛рдЗрд▓ LAN рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдереЛрдбрд╝реА рдЕрд▓рдЧ рд╣реИред рдЗрд╕рдореЗрдВ рд░рд╛рдЬ, рддреИрдирд╛рддреА рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд░рд╣рд╕реНрдп - рдХреБрдВрдЬреА рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓реЗрдВред рдХреБрдВрдЬреА рдХрд╛рдлреА рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВред рдЖрдк рдХреБрдВрдЬреА рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ - рдЕрдВрджрд░ рдорд╛рди рд▓рд┐рдЦреЗрдВред рдЙрд╕рдХреЗ рдмрд╛рдж, docker-compose.yml рдореЗрдВ рдЖрдк рд╕реАрдХреНрд░реЗрдЯ рд╕реЗрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рдХреЛ рдЗрд╕рдореЗрдВ рдХреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА ред
рдиреЗрдЯрд╡рд░реНрдХ - рдпрд╣ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрдВрддрд░рд┐рдХ рдЧреНрд░рд┐рдб рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдЯреЗрдирд░ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рд▓реИрди рдкрд░ - рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрдХ рдкрд░ - рдЗрд╕реЗ рдереЛрдбрд╝рд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА ред
LAN рдФрд░ Product / Beta рдХреЗ рдмреАрдЪ
рддреИрдирд╛рддреА рдореБрдЦреНрдп рдЕрдВрддрд░ рд╣реИред
deploy: replicas: 1 restart_policy: condition: on-failure placement: constraints: [node.role == manager]
рдиреНрдпреВрдирддрдо рд▓рдбрд╝рд╛рдХреВ рд╕реЗрдЯ:
рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ - рдЙрди
рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреНрд▓рд╕реНрдЯрд░ рд╣реИ рдФрд░ рдЖрдк рдбреЙрдХ рд╕реЗ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рджреЛ рд╕рд░реНрд╡рд░ рд╣реИрдВ рдФрд░ рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ docker swarm рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╕рдВрдЦреНрдпрд╛ 2 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛, 1 рдЙрджрд╛рд╣рд░рдг 1 рд╕рд░реНрд╡рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рджреВрд╕рд░рд╛ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЛрдб рдЖрдзрд╛ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рд░реАрд╕реНрдЯрд╛рд░реНрдЯ_рдкреЛрд▓рд┐рд╢ - рдХрд┐рд╕реА рдХрд╛рд░рдгрд╡рд╢ рдЧрд┐рд░ рдЬрд╛рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ "рд░реА-
рд░рд╛рдЗрдЬ " рдХрд░рдиреЗ рдХреА рдиреАрддрд┐ред
рдкреНрд▓реЗрд╕рдореЗрдВрдЯ - рдХрдВрдЯреЗрдирд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХрд╛ рд╕реНрдерд╛рдиред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рд╕рдордп рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдХреЗрд╡рд▓ 5 рдореЗрдВ рд╕реЗ 1 рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдкрд┐рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдкреНрд░рд▓реЗрдЦрди рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ!рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЙрддреНрдкрд╛рдж / рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ LAN рдХреЗ рд▓рд┐рдП docker-compose.yaml рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдкрд░ рдереЛрдбрд╝рд╛ рдмреЗрд╣рддрд░ рд╣реЛ рдЧрдП рд╣реИрдВред рдЕрдм рдЗрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рд╡реИрдЧреНрд░рд╛рдВрдд рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рджреЗ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╕рд░реНрд╡рд░ рдХреА рдЬрдбрд╝ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬрд┐рдЯред рд╣рд╛рдЗрдорди рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рдлрд╛рдЗрд▓ рд╣реИред sudo apt-get update sudo apt-get -y upgrade sudo apt-get install -y language-pack-en-base export LC_ALL=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 curl -sSl https://get.docker.com/ | sh sudo usermod -aG docker ubuntu sudo apt-get install git sudo docker swarm init --advertise-addr 192.168.128.77 sudo mkdir /app sudo chmod 777 /app -R docker stack deploy -c /docker-compose.yml my-app git clone git@bitbucket.org:JohnDoe/my-app.git /app docker stack ps my-app docker stack ls docker stack services my-app
рдкреБрдирд╢реНрдЪ: рд╕реВрдбреЛ рдФрд░ 777 рдХреЗ рд▓рд┐рдП рдХрд┐рдХ рди рдХрд░реЗрдВ, рдмреЗрд╢рдХ рдпрд╣ рдЙрддреНрдкрд╛рджрдХ рдкрд░ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рд╕реАрдЦрдиреЗ рдХреА рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рд╣реИредрдЗрд╕рд▓рд┐рдП, рд╣рдо рдбреЙрдХрдЯрд░ рд╕реЗ рдЬреБрдбрд╝реА рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВредрдкрд╣рд▓реЗ рд╣рдо "рдЭреБрдВрдб" (рдбреЙрдХрд░реНрдо рдЭреБрдВрдб) рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╣реИрдВредрдлрд┐рд░ рд╣рдо рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВред/ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд╣рдорд╛рд░реЗ SF4 рдХреЛрдб рдХреЗ рд╕рд╛рде рд╢рд▓рдЬрдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВредрдЙрд╕рдХреЗ рдмрд╛рдж рддреАрди рдХрдорд╛рдВрдб рд╣реИрдВ: рдкреАрдПрд╕, рдПрд▓рдПрд╕ рдФрд░ рд╕рд░реНрд╡рд┐рд╕реЗрдЬредрдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред рдореИрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ ps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рднрд╛рдЧ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдХреЛрдИ рд╣реЛредрдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдХрдВрдЯреЗрдирд░ рдмрдврд╝ рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдбреЙрдХ рд╕реНрдЯреИрдХ рдкреАрдПрд╕ рдорд╛рдп-рдРрдк рдореЗрдВ рдЖрдкрдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛ рдХрд╛рд░рдг рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ docker рдХрдВрдЯреЗрдирд░ ps -a рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдФрд░ рд╡рд╣рд╛рдВ рдПрдХ рдХрдВрдЯреЗрдирд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдЧрд┐рд░рддрд╛ рд╣реИред рдПрдХ рд╣реА рдХрдВрдЯреЗрдирд░ рдХреЗ рдХрдИ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП my-app_php-fpm.1ред * рдХреБрдЫ рднрдпрдВрдХрд░ рд╣реИрд╢ *редрддрджрдиреБрд╕рд╛рд░, рдЕрдм, рдХрдВрдЯреЗрдирд░ рдХреЗ рдирд╛рдо рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдП, рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ do my-app_php-fpm.1 рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред * рдХреБрдЫ рднрдпрдВрдХрд░ рд╣реИрд╢ * рдФрд░ рд▓реЙрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦреЗрдВред рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдкреАрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: docker stack rm my-app
рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдВрдЯреЗрдирд░ рдХреЗ рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдЭреБрдВрдб рд╣реЛрдЧрд╛ред рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░реЗрдВ - рдФрд░ рдлрд┐рд░ рд╕реЗ рдбреЙрдХ рд╕реНрдЯреИрдХ -c docker-compose.yml my-appред