рдбрдХрд░: рдирд░рд╛рдореНрд░реЛ рд╕рд▓реНрд▓рд╛рд╣

рдбрдХрд░: рдирд░рд╛рдореНрд░реЛ рд╕рд▓реНрд▓рд╛рд╣

рдЬрдм рдореИрд▓реЗ рдХрд╛рд░ рдЪрд▓рд╛рдЙрди рд╕рд┐рдХрд┐рд░рд╣реЗрдХреЛ рдерд┐рдПрдБ, рдкрд╣рд┐рд▓реЛ рдкрд╛рдардорд╛ рдкреНрд░рд╢рд┐рдХреНрд╖рдХрд▓реЗ рд░рд┐рднрд░реНрд╕рдорд╛ рдЪреМрд░рд╛рд╣реЗрдорд╛ рд▓реНрдпрд╛рдП, рд░ рддреНрдпрд╕рдкрдЫрд┐ рднрдиреЗ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рддреНрдпрд╕реЛ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди - рдХрд╣рд┐рд▓реНрдпреИ рдкрдирд┐ред рдореИрд▓реЗ рдпреЛ рдирд┐рдпрдо рддреБрд░реБрдиреНрддреИ рд░ рдореЗрд░реЛ рдмрд╛рдБрдХреА рдЬреАрд╡рдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдореНрдЭреЗрдВред

рддрдкрд╛рдИрдВрд▓реЗ рдмрдЪреНрдЪрд╛рд╣рд░реВрд▓рд╛рдИ рдЧреНрд░рд┐рдЧреЛрд░реА рдУрд╕реНрдЯрд░рдХреЛ "рдЦрд░рд╛рдм рд╕рд▓реНрд▓рд╛рд╣" рдкрдвреНрдиреБрднрдпреЛ, рд░ рддрдкрд╛рдИрдВрд▓реЗ рдЙрдиреАрд╣рд░реВрд▓рд╛рдИ рдпреЛ рдЧрд░реНрдиреБ рд╣реБрдБрджреИрди рднрдиреЗрд░ рдХрддрд┐ рд╕рдЬрд┐рд▓реИ рд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛ рджреЗрдЦреНрдиреБрд╣реБрдиреНрдЫред

рдбрдХрд░рдлрд╛рдЗрд▓ рд╕рд╣реА рддрд░рд┐рдХрд╛рд▓реЗ рдХрд╕рд░реА рд▓реЗрдЦреНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдзреЗрд░реИ рд▓реЗрдЦрд╣рд░реВ рд▓реЗрдЦрд┐рдПрдХрд╛ рдЫрдиреНред рддрд░ рдореИрд▓реЗ рдЧрд▓рдд рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рдХрд╕рд░реА рд▓реЗрдЦреНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рднреЗрдЯреНрдЯрд╛рдПрдиред рдо рдпреЛ рдЦрд╛рдбрд▓ рднрд░реНрджреИ рдЫреБред рд░ рд╣реБрдирд╕рдХреНрдЫ рдореИрд▓реЗ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛, рддреНрдпрд╕реНрддрд╛ рдбрдХрд░рдлрд╛рдЗрд▓рд╣рд░реВ рдХрдо рд╣реБрдиреЗрдЫрдиреНред

рд╕рдмреИ рдкрд╛рддреНрд░рд╣рд░реВ, рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рд░ рдбрдХрд░рдлрд╛рдЗрд▓ рдХрд╛рд▓реНрдкрдирд┐рдХ рд╣реБрдиреНред рдпрджрд┐ рддрдкрд╛рдИ рдЖрдлреИрд▓рд╛рдИ рдЪрд┐рдиреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдорд╛рдл рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдбрдХрд░рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ, рдЕрд╢реБрдн рд░ рднрдпрд╛рдирдХ

рдкрд┐рдЯрд░ (рд╡рд░рд┐рд╖реНрда рдЬрд╛рднрд╛/рд░реБрдмреА/рдкреАрдПрдЪрдкреА рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛): рд╕рд╣рдХрд░реНрдореА рднрд╛рд╕рд┐рд▓реА, рдХреЗ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдбрдХрд░рдорд╛ рдирдпрд╛рдБ рдореЛрдбреНрдпреБрд▓ рдЕрдкрд▓реЛрдб рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫ?
Vasily (рдЬреБрдирд┐рдпрд░): рд╣реЛрдЗрди, рдорд╕рдБрдЧ рд╕рдордп рдерд┐рдПрди, рдо рдпреЛ рдбрдХрд░рд╕рдБрдЧ рдпреЛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рд╕рдХреНрджрд┐рдиред рдпрд╕рдорд╛ рдзреЗрд░реИ рд▓реЗрдЦрд╣рд░реВ рдЫрдиреН, рдпреЛ рдЪрдХреНрдХрд░ рд▓рд╛рдЧреНрдиреЗ рдЫред

рдкрд┐рдЯрд░: рд╣рд╛рдореАрд╕рдБрдЧ рдПрдХ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рд╕рдордп рд╕реАрдорд╛ рдерд┐рдпреЛред рдорд▓рд╛рдИ рддрдкрд╛рдИрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрди рджрд┐рдиреБрд╣реЛрд╕реН, рд╣рд╛рдореА рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВред рддрдкрд╛рдИрд▓рд╛рдИ рдХреЗ рдХрд╛рдо рдЧрд░реНрджреИрди рдорд▓рд╛рдИ рднрдиреНрдиреБрд╣реЛрд╕реНред

Vasily: рдо рдЖрдзрд╛рд░рднреВрдд рдЫрд╡рд┐ рдЫрдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрджрд┐рди рддрд╛рдХрд┐ рдпреЛ рдиреНрдпреВрдирддрдо рдЫ, рддрд░ рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдЫред
рдкрд┐рдЯрд░: рдЙрдмрдиреНрдЯреБ рдЫрд╡рд┐ рд▓рд┐рдиреБрд╣реЛрд╕реН, рдпрд╕рдорд╛ рддрдкрд╛рдИрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдЫред рд░ рдХреЗ рдзреЗрд░реИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬрд╣рд░реВ рдкрдЫрд┐ рдХрд╛рдордорд╛ рдЖрдЙрдиреЗрдЫрдиреНред рд░ рдирд╡реАрдирддрдо рдЯреНрдпрд╛рдЧ рд░рд╛рдЦреНрди рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рд╕рдзреИрдВ рдирд╡реАрдирддрдо рд╣реЛрд╕реНред

рд░ рдкрд╣рд┐рд▓реЛ рд░реЗрдЦрд╛ рдбрдХрд░рдлрд╛рдЗрд▓рдорд╛ рджреЗрдЦрд╛ рдкрд░реНрджрдЫ:

FROM ubuntu:latest

рдкрд┐рдЯрд░: рдЕрдм рдХреЗ рдЫ, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдореЛрдбреНрдпреБрд▓ рд▓реЗрдЦреНрди рдХреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ?
Vasily: рддреНрдпрд╕реИрд▓реЗ рд░реВрдмреА, рддреНрдпрд╣рд╛рдБ рдПрдХ рд╡реЗрдм рд╕рд░реНрднрд░ рдЫ рд░ рд╕реЗрд╡рд╛ рдбреЗрдорди рдХреЛ рдПрдХ рдЬреЛрдбреА рд╕реБрд░реБ рдЧрд░реНрдиреБрдкрд░реНрдЫред
рдкрд┐рдЯрд░: рд╣реЛ, рд╣рд╛рдореАрд▓рд╛рдИ рдХреЗ рдЪрд╛рд╣рд┐рдиреНрдЫ: рд░реБрдмреА, рдмрдиреНрдбрд▓рд░, рдиреЛрдбрдЬ, рдЗрдореЗрдЬрдореНрдпрд╛рдЬрд┐рдХ рд░ рдЕрд░реВ рдХреЗ... рд░ рдПрдХреИ рд╕рдордпрдорд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдкрдорд╛ рдирдпрд╛рдБ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдкрдЧреНрд░реЗрдб рдЧрд░реНрдиреБрд╣реЛрд╕реНред
Vasily: рд░ рд╣рд╛рдореА рдПрдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИрдиреМрдВ рддрд╛рдХрд┐ рд╣рд╛рдореА рд░реВрдЯ рдЕрдиреНрддрд░реНрдЧрдд рд╣реБрдиреЗрдЫреИрдиреМрдВ?
рдкрд┐рдЯрд░: рдпреЛ рднрд╛рдБрдЪреНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрд▓реЗ рдЕрдЭреИ рдЕрдзрд┐рдХрд╛рд░рдХреЛ рд╕рд╛рде рдореВрд░реНрдЦ рдмрдирд╛рдЙрдиреБ рдкрд░реНрдЫред
Vasily: рдорд▓рд╛рдИ рд╕рдордп рдЪрд╛рд╣рд┐рдиреНрдЫ, рд▓рдЧрднрдЧ 15 рдорд┐рдиреЗрдЯ, рдпреЛ рд╕рдмреИ рдПрдХреИ рдЖрджреЗрд╢рдорд╛ рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ рдкрдвреЗрдВ рдХрд┐...
(рдкреАрдЯрд░рд▓реЗ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд░ рдзреЗрд░реИ рд╕реНрдорд╛рд░реНрдЯ рдЬреБрдирд┐рдпрд░рд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫред)
рдкрддреНрд░реБрд╕: рдЫреБрдЯреНрдЯреИ рдЖрджреЗрд╢рд╣рд░реВрдорд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН, рдпреЛ рдкрдвреНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреЗрдЫред

рдбрдХрд░рдлрд╛рдЗрд▓ рдмрдвреНрдЫ:

FROM ubuntu:latest
RUN apt-get update
RUN apt-get upgrade
RUN apt-get -y install libpq-dev imagemagick gsfonts ruby-full
RUN gem install bundler
RUN curl -sL https://deb.nodesource.com/setup_9.x | sudo bash -
RUN apt-get install -y nodejs
RUN bundle install --without development test --path vendor/bundle
RUN rm -rf /usr/local/bundle/cache/*.gem 
RUN apt-get clean 
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

рддреНрдпрд╕рдкрдЫрд┐ рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ, DevOps (рддрд░ Dev рднрдиреНрджрд╛ рдмрдвреА Ops), рдЕрдлрд┐рд╕рдорд╛ рдЪрд┐рдЪреНрдпрд╛рдЙрджреИ рдлрдЯреНрдЫрдиреН:

AI: Petya, рддрдкрд╛рдЗрдБрдХрд╛ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдлреЗрд░рд┐ рдЦрд╛рдирд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рддреЛрдбреЗрдХрд╛ рдЫрдиреН, рдпреЛ рдХрд╣рд┐рд▓реЗ рд╕рдорд╛рдкреНрдд рд╣реБрдиреЗрдЫ ...

рд╕рд╛рдиреЛ рдЭрдЧрдбрд╛ рдкрдЫрд┐, рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ рдЪрд┐рд╕реЛ рд╣реБрдиреНрдЫ рд░ рдЖрдлреНрдирд╛ рд╕рд╣рдХрд░реНрдореАрд╣рд░реВ рдпрд╣рд╛рдБ рдХреЗ рдЧрд░реНрджреИрдЫрдиреН рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдерд╛рд▓реНрдЫрдиреНред

AI: рддрдкрд╛рдИ рдХреЗ рдЧрд░реНрджреИ рд╣реБрдиреБрд╣реБрдиреНрдЫ?
Vasily: рдкрд┐рдЯрд░рд▓реЗ рдорд▓рд╛рдИ рдирдпрд╛рдБ рдореЛрдбреНрдпреБрд▓рдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрд░рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджреИрдЫред
AI: рдорд▓рд╛рдИ рд╣реЗрд░реНрди рджрд┐рдиреБрд╣реЛрд╕реН... рддрдкрд╛рдИрдВрд▓реЗ рдпрд╣рд╛рдБ рдХреЗ рд▓реЗрдЦреНрдиреБрднрдпреЛ, рддрдкрд╛рдИрдВрд▓реЗ рдЫреБрдЯреНрдЯреИ рдЖрджреЗрд╢рдХреЛ рд╕рд╛рде рднрдгреНрдбрд╛рд░ рд╕рдлрд╛ рдЧрд░реНрдиреБрднрдпреЛ, рдпреЛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд╣ рд╣реЛ... рддрд░ рддрдкрд╛рдИрдВрд▓реЗ Gemfile рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫреИрди рднрдиреЗ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рдХрд╕рд░реА рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ! рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдпреЛ рд░рд╛рдореНрд░реЛ рдЫреИрдиред
рдкрд┐рдЯрд░: рдХреГрдкрдпрд╛ рдЖрдлреНрдиреЛ рд╡реНрдпрд╡рд╕рд╛рдпрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВред

рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ рджреБрдЦреА рднрдПрд░ рд╕реБрд╕реНрдХреЗрд░рд╛ рд╣рд╛рд▓реНрдЫрдиреН рд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рдХрд╕рд▓реЗ рддреЛрдбреНрдпреЛ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдЫреЛрдбреНрдЫрдиреНред

рдкрддреНрд░реБрд╕: рд╣реЛ, рддрд░ рдЙрд╣рд╛рдБ рдХреЛрдбрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕рд╣реА рд╣реБрдиреБрд╣реБрдиреНрдереНрдпреЛ, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЫрд╡рд┐рдорд╛ рдзрдХреЗрд▓реНрдиреБрдкрд░реНрдЫред рд░ рддреБрд░реБрдиреНрддреИ ssh рд░ рд╕реБрдкрд░рд╡рд╛рдЗрдЬрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реМрдВ, рдЕрдиреНрдпрдерд╛ рд╣рд╛рдореА рдбреЗрдордирд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреМрдВред

Vasily: рддреНрдпрд╕рдкрдЫрд┐ рдо рдкрд╣рд┐рд▓реЗ Gemfile рд░ Gemfile.lock рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреЗрдЫреБ, рддреНрдпрд╕рдкрдЫрд┐ рдо рд╕рдмреИ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗрдЫреБ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдо рд╕рдореНрдкреВрд░реНрдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреЗрдЫреБред рдпрджрд┐ Gemfile рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИрди рднрдиреЗ, рддрд╣ рдХреНрдпрд╛рд╕рдмрд╛рдЯ рд▓рд┐рдЗрдиреЗрдЫред
рдкрддреНрд░реБрд╕: рдХрд┐рди рддрдкрд╛рдИрдВ рд╕рдмреИ рдпреА рддрд╣рд╣рд░реВрд╕рдБрдЧ рд╣реБрдиреБрд╣реБрдиреНрдЫ, рдПрдХреИрдЪреЛрдЯрд┐ рд╕рдмреИ рдХреБрд░рд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддреБрд░реБрдиреНрддреИ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдПрдХрджрдо рдкрд╣рд┐рд▓реЛ рд▓рд╛рдЗрдиред

рдбрдХрд░рдлрд╛рдЗрд▓ рдЕрдм рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

FROM ubuntu:latest
COPY ./ /app
WORKDIR /app
RUN apt-get update
RUN apt-get upgrade
RUN apt-get -y install libpq-dev imagemagick gsfonts ruby-full ssh supervisor
RUN gem install bundler
RUN curl -sL https://deb.nodesource.com/setup_9.x | sudo bash -
RUN apt-get install -y nodejs

RUN bundle install --without development test --path vendor/bundle
RUN rm -rf /usr/local/bundle/cache/*.gem 
RUN apt-get clean 
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

рдкрддреНрд░реБрд╕: рддреНрдпрд╕реЛрднрдП, рдЕрдм рдХреЗ рд╣реБрдиреНрдЫ? рдХреЗ рддрдкрд╛рдИрд╕рдБрдЧ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХрдХрд╛ рд▓рд╛рдЧрд┐ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рдЫрдиреН?
Vasily: рдЫреИрди, рдЫреИрдиред рддрд░ рдо рдЪрд╛рдБрдбреИ рдЧрд░реНрдЫреБред
рдкрддреНрд░реБрд╕: рддреНрдпрд╕реЛ рднрдП рддрдкрд╛рдИрд▓реЗ рдпреЛ рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред рдЕрдм рдПрдЙрдЯрд╛ init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреЗрдЪ рдЧрд░реМрдВ рдЬрд╕рд▓реЗ рд╕рдмреИ рдХреБрд░рд╛ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫред рдареАрдХ рдЫ, рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрдВрд▓реЗ ssh рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН, nohup рдХреЛ рд╕рд╛рде, рддрд╛рдХрд┐ рд╣рд╛рдореА рдХрдиреНрдЯреЗрдирд░рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреМрдВ рд░ рдХреЗ рдЧрдбрдмрдб рднрдпреЛ рднрдиреЗрд░ рд╣реЗрд░реНрди рд╕рдХреНрдЫреМрдВред рддреНрдпрд╕рдкрдЫрд┐ рд╕реБрдкрд░рд╡рд╛рдЗрдЬрд░рд▓рд╛рдИ рддреНрдпрд╕реИрдЧрд░реА рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред рдард┐рдХ рдЫ, рддреНрдпрд╕реЛрднрдП рддрдкрд╛рдИрдВ рдпрд╛рддреНрд░реА рдорд╛рддреНрд░ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реНред
рдкреНрд░рд╢реНрди: рддрд░ рдореИрд▓реЗ рдкрдвреЗрдВ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реБрдиреБрдкрд░реНрдЫ, рддреНрдпрд╕реИрд▓реЗ рдбрдХрд░рд▓реЗ рдерд╛рд╣рд╛ рдкрд╛рдЙрдиреЗрдЫ рдХрд┐ рдХреЗрд╣рд┐ рдЧрд▓рдд рднрдпреЛ рд░ рдХрдиреНрдЯреЗрдирд░ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рд╕рдХреНрдЫред
P: рдЖрдлреНрдиреЛ рдЯрд╛рдЙрдХреЛрд▓рд╛рдИ рдмрдХрд╡рд╛рд╕ рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред рд░ рд╕рд╛рдорд╛рдиреНрдп рдорд╛, рдХрд╕рд░реА? рддрдкрд╛рдЗрдБ рдпреЛ рд╕рдмреИ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдХрд╕рд░реА рдЪрд▓рд╛рдЙрдиреБ рд╣реБрдиреНрдЫ? рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪрд▓рд╛рдИ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реЛрдЪреНрди рджрд┐рдиреБрд╣реЛрд╕реН, рдпреЛ рдХреЗрд╣рд┐рдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрдЗрди рдХрд┐ рдЙрд╕рд▓реЗ рддрд▓рдм рдкрд╛рдЙрдБрдЫред рд╣рд╛рдореНрд░реЛ рдХрд╛рдо рдХреЛрдб рд▓реЗрдЦреНрдиреЗ рд╣реЛред рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдЙрд╕рд▓рд╛рдИ рдзрдиреНрдпрд╡рд╛рдж рднрдиреНрди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рд╣рд╛рдореАрд▓реЗ рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдбрдХрдлрд╛рдЗрд▓ рд▓реЗрдЦреНрдпреМрдВред

10 рдорд┐рдиреЗрдЯ рд░ рдмрд┐рд░рд╛рд▓реЛ рдмрд╛рд░реЗ рджреБрдИ рднрд┐рдбрд┐рдпреЛ рдкрдЫрд┐ред

рдкреНрд░рд╢реНрди: рдореИрд▓реЗ рд╕рдмреИ рдХрд╛рдо рдЧрд░реЗрдХреЛ рдЫреБред рдореИрд▓реЗ рдердк рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рдердкреЗред
P: рдорд▓рд╛рдИ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реН!

Dockerfile рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг:

FROM ubuntu:latest

# ╨Ъ╨╛╨┐╨╕╤А╤Г╨╡╨╝ ╨╕╤Б╤Е╨╛╨┤╨╜╤Л╨╣ ╨║╨╛╨┤
COPY ./ /app
WORKDIR /app

# ╨Ю╨▒╨╜╨╛╨▓╨╗╤П╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╨┐╨░╨║╨╡╤В╨╛╨▓
RUN apt-get update 

# ╨Ю╨▒╨╜╨╛╨▓╨╗╤П╨╡╨╝ ╨┐╨░╨║╨╡╤В╤Л
RUN apt-get upgrade

# ╨г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╨╜╤Г╨╢╨╜╤Л╨╡ ╨┐╨░╨║╨╡╤В╤Л
RUN apt-get -y install libpq-dev imagemagick gsfonts ruby-full ssh supervisor

# ╨г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ bundler
RUN gem install bundler

# ╨г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ nodejs ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╡╤В╤Б╤П ╨┤╨╗╤П ╤Б╨▒╨╛╤А╨║╨╕ ╤Б╤В╨░╤В╨╕╨║╨╕
RUN curl -sL https://deb.nodesource.com/setup_9.x | sudo bash -
RUN apt-get install -y nodejs

# ╨г╤Б╤В╨░╨╜╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В╨╕
RUN bundle install --without development test --path vendor/bundle

# ╨з╨╕╤Б╤В╨╕╨╝ ╨╖╨░ ╤Б╨╛╨▒╨╛╨╣ ╨║╤Н╤И╨╕
RUN rm -rf /usr/local/bundle/cache/*.gem 
RUN apt-get clean 
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

# ╨Ч╨░╨┐╤Г╤Б╨║╨░╨╡╨╝ ╤Б╨║╤А╨╕╨┐╤В, ╨┐╤А╨╕ ╤Б╤В╨░╤А╤В╨╡ ╨║╨╛╨╜╤В╨╡╨╣╨╜╨╡╤А╨░, ╨║╨╛╤В╨╛╤А╤Л╨╣ ╨╖╨░╨┐╤Г╤Б╤В╨╕╤В ╨▓╤Б╨╡ ╨╛╤Б╤В╨░╨╗╤М╨╜╨╛╨╡.
CMD [тАЬ/app/init.shтАЭ]

P: рд░рд╛рдореНрд░реЛ, рдорд▓рд╛рдИ рдпреЛ рдордирдкрд░реНрдЫред рд░ рдЯрд┐рдкреНрдкрдгреАрд╣рд░реВ рд░реВрд╕реА, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░ рдкрдвреНрди рдпреЛрдЧреНрдп рдЫрдиреН, рд╕рдмреИрдЬрдирд╛рд▓реЗ рддреНрдпрд╕реНрддреИ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫрдиреНред рдореИрд▓реЗ рддрд┐рдореАрд▓рд╛рдИ рд╕рдмреИ рд╕рд┐рдХрд╛рдПрдХреЛ рдЫреБ, рдмрд╛рдБрдХреА рддрд┐рдореА рдЖрдлреИ рдЧрд░реНрди рд╕рдХреНрдЫреМред рдХрдлреА рдкрд┐рдЙрди рдЬрд╛рдФрдВ...

рдареАрдХ рдЫ, рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдПрдХрджрдо рдбрд░рд▓рд╛рдЧреНрджреЛ рдбрдХрд░рдлрд╛рдЗрд▓ рдЫ, рдЬрд╕рдХреЛ рджреГрд╢реНрдпрд▓реЗ рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ рдЫреЛрдбреНрди рдЪрд╛рд╣рдиреНрдЫ рд░ рдЙрд╕рдХреЛ рдЖрдБрдЦрд╛ рдЕрд░реНрдХреЛ рд╣рдкреНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рджреБрдЦреНрдиреЗрдЫред рдбрдХрд░рдлрд╛рдЗрд▓, рдирд┐рд╕реНрд╕рдиреНрджреЗрд╣, рдЕрдЭ рдЦрд░рд╛рдм рд╣реБрди рд╕рдХреНрдЫ, рдкреВрд░реНрдгрддрд╛рдХреЛ рдХреБрдиреИ рд╕реАрдорд╛ рдЫреИрдиред рддрд░ рд╢реБрд░реБрд╡рд╛рддрдХреЛ рд▓рд╛рдЧрд┐, рдпрд╕рд▓реЗ рдЧрд░реНрдиреЗрдЫред

рдо рдЧреНрд░рд┐рдЧреЛрд░реА рдУрд╕реНрдЯрд░рдХреЛ рдЙрджреНрдзрд░рдгрдХреЛ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ:

рдпрджрд┐ рддрдкрд╛рдИрдВ рдЕрдЭреИ рдкрдХреНрдХрд╛ рд╣реБрдиреБрд╣реБрдиреНрди рднрдиреЗ
рдЬреАрд╡рдирдорд╛ рдмрд╛рдЯреЛ рд░реЛрдЬреНрдпреМрдВ,
рд░ рддрдкрд╛рдИрд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдХрд┐рди
рдЖрдлреНрдиреЛ рд╢реНрд░рдо рдпрд╛рддреНрд░рд╛ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН,
рд╣рд▓рд╡реЗрд╣рд░реВрдорд╛ рдмрддреНрддреАрдХреЛ рдмрд▓реНрдмрд╣рд░реВ рддреЛрдбреНрдиреБрд╣реЛрд╕реН -
рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ "рдзрдиреНрдпрд╡рд╛рдж" рднрдиреНрдиреЗрдЫрдиреНред
рддрдкрд╛рдИрд▓реЗ рдЬрдирддрд╛рд▓рд╛рдИ рд╕рд╣рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ
рдмрд┐рдЬреБрд▓реА рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди