рдкрд░рд┐рдЪрдп
рдХрдВрдЯреЗрдирд░ рдЪрд▓рд╛рдиреЗ рдФрд░
docker-compose.yml рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд▓реЗрдЦ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдпрд╣ рд╕рд╡рд╛рд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХреБрдЫ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреИрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдирд╛ рд╣реИ рдЕрдЧрд░ рдХреБрдЫ рдХрдВрдЯреЗрдирд░ рдХреЛ рддрдм рддрдХ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдПрдХ рдХрдВрдЯреЗрдирд░ рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдпрд╛ рдХреБрдЫ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рди рд╣реЛред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдбреЙрдХрд░реЛрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо
рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдкреНрд░рд╢реНрди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛ рдЧрдПред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реИ?
рджрд░рдЕрд╕рд▓, рдХрдВрдЯреЗрдирд░ рдП рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреЗрдирд░ рдП рдореЗрдВ рд╕реЗрд╡рд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░, рдХрдВрдЯреЗрдирд░ рдмреА рдореЗрдВ рдЖрд╡реЗрджрди рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рдкрд╣рд▓рд╛ рдорд░рдирд╛ рд╣реИ (рдЕрдзрд┐рдорд╛рдирддрдГ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде)
- рджреВрд╕рд░рд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╡реИрд╕реЗ рднреА рдорд░рдирд╛ рд╣реИ, рдЕрдЧрд░ рдХрдВрдЯреЗрдирд░ рдмреА рдореЗрдВ рдЖрд╡реЗрджрди рдЖрд╡рдВрдЯрд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ
рдХрдВрдЯреЗрдирд░ B рдХреА рдореГрддреНрдпреБ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж,
docker-compose (рдкрд╛рдареНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдЧрд╛ рдФрд░ рдХрдВрдЯреЗрдирд░ B рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдлрд┐рд░ рд╕реЗ рдХрдВрдЯреЗрдирд░ A рдореЗрдВ рд╕реЗрд╡рд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред
рдпрд╣ рддрдм рддрдХ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдХрдВрдЯреЗрдирд░ рдП рдореЗрдВ рд╕реЗрд╡рд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реЛрддреА, рдпрд╛ рдЬрдм рддрдХ рд╣рдо рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрддреЗ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд▓рдЧрд╛рддрд╛рд░ рдУрд╡рд░рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдорд▓реНрдЯреА-рдХрдВрдЯреЗрдирд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХрд╛ рд╣реИред
рд▓реЗрдХрд┐рди, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╣рдо рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рдереЗ рдЬрд╣рд╛рдВ рдХрдВрдЯреЗрдирд░ рдП рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХрдВрдЯреЗрдирд░ рдмреА рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдХрдВрдЯреЗрдирд░ рдмреА рдореЗрдВ рдЖрд╡реЗрджрди рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рддреИрдпрд╛рд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рддреБрд░рдВрдд рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рджрдо рдкрд░ рдбреЗрдЯрд╛ рддрддреНрдкрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреЗрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЕрднреА рднреА рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд, рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХреНрдпреЛрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдиреНрдпрдерд╛, рдорд╛рдирдХ
рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдереЛрдбрд╝реА рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛
рдпрджрд┐ рдЖрдк рдзреНрдпрд╛рди рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрд░реНрдерд╛рддреН, рдкреНрд░рддреНрдпреЗрдХ
рдЗрдХрд╛рдИ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ рдФрд░ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦрднрд╛рд▓ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡рд╣ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВред
рдЗрд╕рд▓рд┐рдП, рдкреНрд░рд╢реНрди рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдпрд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ
рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░, рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рддрддреНрдкрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдФрд░ рдХреЗрд╡рд▓
рддрдм рдХрдВрдЯреЗрдирд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред
рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдбреЙрдХрдЯрд░-рдХрдореНрдкреЛрдЬрд╝рд┐рдЯ рд╡рд┐рд╡рд░рдг рдиреЗ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдХреА,
рдЗрд╕рдХрд╛ рдпрд╣ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ
рдФрд░
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдФрд░
cmd рдХреЗ рд╕рдореБрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдПрдХ рд▓реЗрдЦ ред
рддреЛ рд╣рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
- рдПрдХ рдкрд░рд┐рд╢рд┐рд╖реНрдЯ A рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ рдХрдВрдЯреЗрдирд░ A рдореЗрдВ рд▓рдкреЗрдЯрд╛ рд╣реИ
- рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдкреЛрд░реНрдЯ 8000 рдкрд░ рдУрдХреЗ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ
- рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд╡реЗрджрди рдмреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдХрдВрдЯреЗрдирд░ рдмреА рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЖрд╡реЗрджрди рдП рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкрд╣рд▓реЗ рдП рдкреЛрд░реНрдЯ 8000 рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдкрд╣рд▓рд╛ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛
рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд▓рд┐рдЦрдирд╛ рд╣реИ, рдЬреЛ рд╕рднреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЖрд╡реЗрджрди рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред
рджреВрд╕рд░рд╛ рд╣реИ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдЦреЗ рд╣реБрдП рдмреИрдЪ рдлрд╝рд╛рдЗрд▓
wa-for-it.sh рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рд╣рдордиреЗ рджреЛрдиреЛрдВ рддрд░рд╣ рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреАред
рдЕрдкрдиреА рдЦреБрдж рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд▓рд┐рдЦрдирд╛
рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдХреНрдпрд╛ рд╣реИ?
рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк
ENTRYPOINT рдлрд╝реАрд▓реНрдб рдореЗрдВ
рдбреЙрдХрд░реАрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╕рдордп рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдлрд╝рд╛рдЗрд▓, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЪреЗрдХ рдХрд░рддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрдВрдЯреЗрдирд░ рдХрд╛ рдореБрдЦреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓реЙрдиреНрдЪ рдХрд░рддреА рд╣реИред
рддреЛ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
рдПрдХ
рдПрдВрдЯреНрд░реАрдкреЙрдЗрдВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред
рдЗрд╕рдХреЗ рджреЛ рд╕рдмрдлреЛрд▓реНрдбрд░реНрд╕ рд╣реИрдВ-
рдХрдВрдЯреЗрдирд░_рдП рдФрд░
рдХрдВрдЯреЗрдирд░_ ред рд╣рдо рдЙрдирдореЗрдВ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВрдЧреЗред
рдХрдВрдЯреЗрдирд░ рдП рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдЕрдЬрдЧрд░ рдкрд░ рдПрдХ рд╕рд░рд▓ http рд╕рд░реНрд╡рд░ рд▓реЗрдВред рд╡рд╣, рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреЛрд░реНрдЯ 8000 рдкрд░ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЧ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ 15 рд╕реЗрдХрдВрдб рдХреА рджреЗрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреАред
рдпрд╣
рдХрдВрдЯреЗрдирд░ рдП рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд
рдбреЙрдХрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реИ:
FROM python:3 EXPOSE 8000 CMD sleep 15 && python3 -m http.server --cgi
рдХрдВрдЯреЗрдирд░ B рдХреЗ рд▓рд┐рдП, рдХрдВрдЯреЗрдирд░ B рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди
рдбреЙрдХрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
FROM ubuntu:18.04 RUN apt-get update RUN apt-get install -y curl COPY ./entrypoint.sh /usr/bin/entrypoint.sh ENTRYPOINT [ "entrypoint.sh" ] CMD ["echo", "!!!!!!!! Container_A is available now !!!!!!!!"]
рдФрд░ рдПрдХ рд╣реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣рдорд╛рд░реЗ entrypoint.sh рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдбрд╛рд▓ рджрд┐рдпрд╛ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕рд╛ рд╣реЛрдЧрд╛
рдХрдВрдЯреЗрдирд░ B рдореЗрдВ рдХреНрдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ:
- рдЬрдм рдпрд╣ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ ENTRYPOINT рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ
- entrypoint.sh , рдХрд░реНрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдХрдВрдЯреЗрдирд░ рдП рдХреЗ рд▓рд┐рдП рдорддрджрд╛рди 8000 рдкреЛрд░реНрдЯ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдм рддрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрд╕реЗ 200 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓рддреА (рдпрд╛рдиреА рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд░реНрд▓ рдПрдХ рд╢реВрдиреНрдп рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд▓реВрдк рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛)
- рдЬрдм 200 рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд▓реВрдк рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ $ cmd рдЪрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдЧреБрдЬрд░рддрд╛ рд╣реИред рдФрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рд╕реАрдПрдордбреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдбреЙрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдерд╛, рдЕрд░реНрдерд╛рддреНред рдЗрдХреЛ "!!! рдХрдВрдЯреЗрдирд░_рдП рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ !!!!!!!!" рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИ, рдЙрдкрд░реЛрдХреНрдд рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ
- рд╣рдо рдЫрд╛рдкрддреЗ рд╣реИрдВ - !!! рдХрдВрдЯреЗрдирд░_рдП рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ !!! рдФрд░ рд╕рдорд╛рдкрдиред
рд╣рдо
рдбреЙрдХрдЯрд░-рдХрдВрдкреЛрдЬ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
docker-compose.yml рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рд╣реИ:
version: '3' networks: waiting_for_conteiner: services: conteiner_a: build: ./conteiner_A container_name: conteiner_a image: conteiner_a restart: unless-stopped networks: - waiting_for_conteiner ports: - 8000:8000 conteiner_b: build: ./conteiner_B container_name: conteiner_b image: waiting_for_conteiner.entrypoint.conteiner_b restart: "no" networks: - waiting_for_conteiner
рдпрд╣рд╛рдБ,
conteiner_a рдореЗрдВ, рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
: 8000: 8000 ред рдпрд╣ рдмрд╛рд╣рд░ рд╕реЗ рдЪрд▓ рд░рд╣реЗ http рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрдВрдЯреЗрдирд░ рдмреА рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреБрдирд░рд╛рд░рдВрдн рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рд╣рдо рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:
docker-compose up тАФ-build
рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ 15 рд╕реЗрдХрдВрдб рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдП рдХреА рдЕрдиреБрдкрд▓рдмреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИ, рдФрд░ рдлрд┐рд░
conteiner_b | Conteiner_A is unavailable - sleeping conteiner_b | % Total % Received % Xferd Average Speed Time Time Time Current conteiner_b | Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> conteiner_b | <html> conteiner_b | <head> conteiner_b | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> conteiner_b | <title>Directory listing for /</title> conteiner_b | </head> conteiner_b | <body> conteiner_b | <h1>Directory listing for /</h1> conteiner_b | <hr> conteiner_b | <ul> conteiner_b | <li><a href=".dockerenv">.dockerenv</a></li> conteiner_b | <li><a href="bin/">bin/</a></li> conteiner_b | <li><a href="boot/">boot/</a></li> conteiner_b | <li><a href="dev/">dev/</a></li> conteiner_b | <li><a href="etc/">etc/</a></li> conteiner_b | <li><a href="home/">home/</a></li> conteiner_b | <li><a href="lib/">lib/</a></li> conteiner_b | <li><a href="lib64/">lib64/</a></li> conteiner_b | <li><a href="media/">media/</a></li> conteiner_b | <li><a href="mnt/">mnt/</a></li> conteiner_b | <li><a href="opt/">opt/</a></li> conteiner_b | <li><a href="proc/">proc/</a></li> conteiner_b | <li><a href="root/">root/</a></li> conteiner_b | <li><a href="run/">run/</a></li> conteiner_b | <li><a href="sbin/">sbin/</a></li> conteiner_b | <li><a href="srv/">srv/</a></li> conteiner_b | <li><a href="sys/">sys/</a></li> conteiner_b | <li><a href="tmp/">tmp/</a></li> conteiner_b | <li><a href="usr/">usr/</a></li> conteiner_b | <li><a href="var/">var/</a></li> conteiner_b | </ul> conteiner_b | <hr> conteiner_b | </body> conteiner_b | </html> 100 987 100 987 0 0 98700 0 --:--:-- --:--:-- --:--:-- 107k conteiner_b | Conteiner_A is up - executing command conteiner_b | !!!!!!!! Container_A is available now !!!!!!!!
рд╣рдореЗрдВ рдЖрдкрдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ
!!! рдХрдВрдЯреЗрдирд░_рдП рдЕрдм рдЙрдкрд▓рдмреНрдз рд╣реИ !!!!!!!! рдФрд░ рд╕рдорд╛рдкрдиред
рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП
рдпрд╣ рдХрд╣рдиреЗ рд▓рд╛рдпрдХ рд╣реИ рдХрд┐ рдпрд╣ рд░рд╛рд╕реНрддрд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
рдЕрд░реНрдерд╛рддреН, рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдЕрдЧрд░
ENTRYPOINT рдФрд░
CMD рдХреЛ рдбреЙрдХрдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬрдм рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ
ENTRYPOINT рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░
CMD рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдпрд╣ рднреА рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐
рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ
ENTRYPOINT рдФрд░
CMD рдХреЛ
docker -compose.yml рдореЗрдВ рдкреБрдирдГ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреНрд░рддреАрдХреНрд╖рд╛- for-it.sh рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк
рдкреНрд░рд╛рд░реВрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
wait-for-it.sh __ -- ___
рдлрд┐рд░, рдЬреИрд╕рд╛ рдХрд┐
рд▓реЗрдЦ рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо
docker -compose.yml рдореЗрдВ рдПрдХ рдирдП
ENTRYPOINT рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░
CMD рдХреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд
рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред
рддреЛ, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
рдХрдВрдЯреЗрдирд░ A рдХреЗ рд▓рд┐рдП рдбреЙрдХрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреА рд╣реИ:
FROM python:3 EXPOSE 8000 CMD sleep 15 && python3 -m http.server --cgi
рдХрдВрдЯреЗрдирд░ рдмреА рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдлрд╝рд╛рдЗрд▓ FROM ubuntu:18.04 COPY ./wait-for-it.sh /usr/bin/wait-for-it.sh CMD ["echo", "!!!!!!!! Container_A is available now !!!!!!!!"]
рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ
version: '3' networks: waiting_for_conteiner: services: conteiner_a: build: ./conteiner_A container_name: conteiner_a image: conteiner_a restart: unless-stopped networks: - waiting_for_conteiner ports: - 8000:8000 conteiner_b: build: ./conteiner_B container_name: conteiner_b image: waiting_for_conteiner.wait_for_it.conteiner_b restart: "no" networks: - waiting_for_conteiner entrypoint: ["wait-for-it.sh", "-s" , "-t", "20", "conteiner_a:8000", "--"]
рд╣рдо
рд╡реЗрдЯ-рдлреЙрд░-рдЗрдЯ рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдЗрд╕реЗ 20 рд╕реЗрдХрдВрдб рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реЗрдВ рдЬрдм рддрдХ рдХрдВрдЯреЗрдирд░ A рдЬреАрд╡рди рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░
"-" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ, рдЬреЛ рдХрд┐
рдкреНрд░рддреАрдХреНрд╖рд╛-рдХреЗ-рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЙрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд▓реЙрдиреНрдЪ рд╣реЛрдЧрд╛ред
рд╣рдо рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ!
рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИред
рдЕрдЧрд░ рд╣рдо рдпрд╣ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдХрд┐рд╕ рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреЗрд╡рд▓ рд╣рдордиреЗ рдЬреЛ
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣
рдЙрд╕рдореЗрдВ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИ , рдХрдВрдЯреЗрдирд░ рд╕реЗ
рд╕реАрдПрдордбреА рд╕рдВрд▓рдЧреНрди рдирд╣реАрдВ рд╣реИред
рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк
рдлрд┐рд░, рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред
рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдореЗрдВ рд╣рдордиреЗ
рд╕реАрдПрдордбреА рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд╣рдореЗрдВ
рдХрдорд╛рдВрдб рдХреЛ
docker-compose.yml рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдлрд┐рд░, рдХрдВрдЯреЗрдирд░ B
рдХреЗ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд
рдЫреЛрдбрд╝ рджреЗрдВ , рдФрд░
docker-compose.yml рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
version: '3' networks: waiting_for_conteiner: services: conteiner_a: build: ./conteiner_A container_name: conteiner_a image: conteiner_a restart: unless-stopped networks: - waiting_for_conteiner ports: - 8000:8000 conteiner_b: build: ./conteiner_B container_name: conteiner_b image: waiting_for_conteiner.wait_for_it.conteiner_b restart: "no" networks: - waiting_for_conteiner entrypoint: ["wait-for-it.sh", "-s" ,"-t", "20", "conteiner_a:8000", "--"] command: ["echo", "!!!!!!!! Container_A is available now !!!!!!!!"]
рдФрд░ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рдпрд╣ рдХрд╣рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рд╕рд╣реА рддрд░реАрдХрд╛ рдкрд╣рд▓рд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рдмрд╣реБрдореБрдЦреА рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рддрддреНрдкрд░рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдкреНрд░рддреАрдХреНрд╖рд╛-рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдпрд╛ рддреЛ рдЕрд▓рдЧ рд╕реЗ рдпрд╛ рдЕрдкрдиреЗ
рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдкрд░ рдПрдореНрдмреЗрдб рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред