рдбреЙрдХрд░: рд╡рд╛рдИрдЯ рд╕рд▓реНрд▓рд╛

рдбреЙрдХрд░: рд╡рд╛рдИрдЯ рд╕рд▓реНрд▓рд╛

рдЬреЗрд╡реНрд╣рд╛ рдореА рдХрд╛рд░ рдЪрд╛рд▓рд╡рд╛рдпрд▓рд╛ рд╢рд┐рдХрдд рд╣реЛрддреЛ, рддреЗрд╡реНрд╣рд╛ рдкрд╣рд┐рд▓реНрдпрд╛рдЪ рдзрдбреНрдпрд╛рдд рдкреНрд░рд╢рд┐рдХреНрд╖рдХрд╛рдиреЗ рдЙрд▓рдЯреНрдпрд╛ рджрд┐рд╢реЗрдиреЗ рдЪреМрдХрд╛рдд рдиреЗрд▓реЗ рдЖрдгрд┐ рдирдВрддрд░ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рдХреА рддреБрдореНрд╣реА рдЕрд╕реЗ рдХрд░реВ рдирдХрд╛ - рдХрдзреАрд╣реА рдирд╛рд╣реА. рдорд▓рд╛ рд╣рд╛ рдирд┐рдпрдо рд▓рдЧреЗрдЪрдЪ рдЖрдард╡рд▓рд╛ рдЖрдгрд┐ рдЖрдпреБрд╖реНрдпрднрд░.

рддреБрдореНрд╣реА рдЧреНрд░рд┐рдЧреЛрд░реА рдСрд╕реНрдЯрд░рдиреЗ рдореБрд▓рд╛рдВрдирд╛ рджрд┐рд▓реЗрд▓рд╛ тАЬрд╡рд╛рдИрдЯ рд╕рд▓реНрд▓рд╛тАЭ рд╡рд╛рдЪрд▓рд╛ рдЖрдгрд┐ рддреБрдореНрд╣реА рдкрд╛рд╣рддрд╛ рдХреА рддреНрдпрд╛рдВрдиреА рд╣реЗ рдХрд░реВ рдирдпреЗ рд╣реЗ рддреНрдпрд╛рдВрдирд╛ рдХрд┐рддреА рд╕рд╣рдЬ рдЖрдгрд┐ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХрдкрдгреЗ рдЬрд╛рдгрд╡рддреЗ.

рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХрд╕реЗ рд▓рд┐рд╣рд╛рд╡реЗ рдпрд╛рд╡рд░ рдмрд░реЗрдЪ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд. рдкрд░рдВрддреБ рдЪреБрдХреАрдЪреНрдпрд╛ рдбреЙрдХрд░рдлрд╛рдИрд▓реНрд╕ рдХрд╢рд╛ рд▓рд┐рд╣рд╛рдпрдЪреНрдпрд╛ рдпрд╛рд╡рд░реАрд▓ рд╕реВрдЪрдирд╛ рдорд▓рд╛ рдЖрдврд│рд▓реНрдпрд╛ рдирд╛рд╣реАрдд. рдореА рд╣реА рдкреЛрдХрд│реА рднрд░реВрди рдХрд╛рдврдд рдЖрд╣реЗ. рдЖрдгрд┐ рдХрджрд╛рдЪрд┐рдд рдорд▓рд╛ рд╕рдорд░реНрдерди рдорд┐рд│рд╛рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдЕрд╢рд╛ рдбреЙрдХрд░рдлрд╛рдИрд▓реНрд╕ рдХрдореА рдЕрд╕рддреАрд▓.

рд╕рд░реНрд╡ рдкрд╛рддреНрд░реЗ, рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрдгрд┐ рдбреЙрдХрд░рдлрд╛рдИрд▓ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЖрд╣реЗрдд. рддреБрдореНрд╣реА рд╕реНрд╡рддрдГрд▓рд╛ рдУрд│рдЦрдд рдЕрд╕рд╛рд▓ рддрд░ рдорд╛рдл рдХрд░рд╛.

рдбреЙрдХрд░рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреЗ, рдЕрд╢реБрдн рдЖрдгрд┐ рднрдпрдВрдХрд░

рдкреАрдЯрд░ (рд╡рд░рд┐рд╖реНрда java/rubby/php рд╡рд┐рдХрд╕рдХ): рд╕рд╣рдХрд╛рд░реА рд╡рд╕рд┐рд▓реА, рддреБрдореНрд╣реА рдЖрдзреАрдЪ рдбреЙрдХрд░рд╡рд░ рдирд╡реАрди рдореЙрдбреНрдпреВрд▓ рдЕрдкрд▓реЛрдб рдХреЗрд▓реЗ рдЖрд╣реЗ рдХрд╛?
рд╡реЕрд╕рд┐рд▓реА (рдХрдирд┐рд╖реНрда): рдирд╛рд╣реА, рдорд╛рдЭреНрдпрд╛рдХрдбреЗ рд╡реЗрд│ рдирд╡реНрд╣рддрд╛, рдореА рдпрд╛ рдбреЙрдХрд░рд╕рд╣ рддреЗ рд╢реЛрдзреВ рд╢рдХрдд рдирд╛рд╣реА. рддреНрдпрд╛рд╡рд░ рдмрд░реЗрдЪ рд▓реЗрдЦ рдЖрд╣реЗрдд, рддреЗ рдЪрдХреНрд░рд╛рд╡реВрди рдЯрд╛рдХрдгрд╛рд░реЗ рдЖрд╣реЗ.

рдкреАрдЯрд░: рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рдореБрджрдд рд╣реЛрддреА. рдорд▓рд╛ рддреБрдордЪреА рдорджрдд рдХрд░реВ рджреНрдпрд╛, рдЖрдореНрд╣реА рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рддреЗ рд╢реЛрдзреВрди рдХрд╛рдвреВ. рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдХрд╛рдп рдХрд╛рдо рдХрд░рдд рдирд╛рд╣реА рддреЗ рдорд▓рд╛ рд╕рд╛рдВрдЧрд╛.

рд╡реЕрд╕рд┐рд▓реА: рдореА рдореВрд▓рднреВрдд рдкреНрд░рддрд┐рдорд╛ рдирд┐рд╡рдбреВ рд╢рдХрдд рдирд╛рд╣реА рдЬреЗрдгреЗрдХрд░реВрди рддреА рдХрд┐рдорд╛рди рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рддреНрдпрд╛рдд рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЖрд╣реЗ.
рдкреАрдЯрд░: рдЙрдмрдВрдЯреВ рдкреНрд░рддрд┐рдорд╛ рдШреНрдпрд╛, рддреНрдпрд╛рдд рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡рдХрд╛рд╣реА рдЖрд╣реЗ. рдЖрдгрд┐ рдХрд┐рддреА рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧреЛрд╖реНрдЯреА рдЖрд╣реЗрдд рддреЗ рдирдВрддрд░ рд╣рд╛рддрд╛рдд рдпреЗрдИрд▓. рдЖрдгрд┐ рдирд╡реАрдирддрдо рдЯреЕрдЧ рдареЗрд╡рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛ рдЬреЗрдгреЗрдХрд░реВрди рдЖрд╡реГрддреНрддреА рдиреЗрд╣рдореАрдЪ рдирд╡реАрдирддрдо рдЕрд╕реЗрд▓.

рдЖрдгрд┐ рдкрд╣рд┐рд▓реА рдУрд│ рдбреЙрдХрд░рдлрд╛рдЗрд▓рдордзреНрдпреЗ рджрд┐рд╕рддреЗ:

FROM ubuntu:latest

рдкреАрдЯрд░: рдкреБрдвреЗ рдХрд╛рдп, рдЖрдореНрд╣реА рдЖрдордЪреЗ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рдп рд╡рд╛рдкрд░рд▓реЗ?
рд╡реЕрд╕рд┐рд▓реА: рддрд░ рд░реБрдмреА, рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рдЖрд╣реЗ рдЖрдгрд┐ рджреЛрди рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдбрд┐рдорди рд▓рд╛рдБрдЪ рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд.
рдкреАрдЯрд░: рд╣реЛрдп, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рд╣рд╡реЗ рдЖрд╣реЗ: рд░реБрдмреА, рдмрдВрдбрд▓рд░, рдиреЛрдбрдЬ, рдЗрдореЗрдЬрдореЕрдЧрд┐рдХ рдЖрдгрд┐ рдЖрдгрдЦреА рдХрд╛рдп... рдЖрдгрд┐ рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдирд╡реАрди рдкреЕрдХреЗрдЬреЗрд╕ рдорд┐рд│рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдкрдЧреНрд░реЗрдб рдХрд░рд╛.
рд╡реЕрд╕рд┐рд▓реА: рдЖрдгрд┐ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рддрдпрд╛рд░ рдХрд░рдгрд╛рд░ рдирд╛рд╣реА рдЬреЗрдгреЗрдХрд░реБрди рдЖрдореНрд╣реА рд░реВрдЯ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА?
рдкреАрдЯрд░: рдЪреЛрдЦреЛ, рдордЧ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрдирд╣реА рдЕрдзрд┐рдХрд╛рд░рд╛рдВрдЪреА рдлрд╕рд╡рдгреВрдХ рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓.
рд╡реЕрд╕рд┐рд▓реА: рд╣реЗ рд╕рд░реНрд╡ рдПрдХрд╛рдЪ рдЖрджреЗрд╢рд╛рдд рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдорд▓рд╛ рд╕реБрдорд╛рд░реЗ 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: рдкреЗрдЯреНрдпрд╛, рддреБрдордЪреНрдпрд╛ рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдиреА рдкреБрдиреНрд╣рд╛ рдлреВрдб рдбреЗрдЯрд╛рдмреЗрд╕ рддреЛрдбрд▓рд╛, рд╣реЗ рдХрдзреА рд╕рдВрдкреЗрд▓...

рдПрдХрд╛ рдЫреЛрдЯреНрдпрд╛ рдЪрдХрдордХреАрдирдВрддрд░, рдЗрдЧреЛрд░ рдЗрд╡реНрд╣рд╛рдиреЛрд╡рд┐рдЪ рдердВрдб рдЭрд╛рд▓рд╛ рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рд╕рд╣рдХрд╛рд░реА рдпреЗрдереЗ рдХрд╛рдп рдХрд░рдд рдЖрд╣реЗрдд рд╣реЗ рд╢реЛрдзреВ рд▓рд╛рдЧрд▓реЗ.

AI: рддреБрдореНрд╣реА рдХрд╛рдп рдХрд░рдд рдЖрд╣рд╛рдд?
рд╡реЕрд╕рд┐рд▓реА: рдкреАрдЯрд░ рдорд▓рд╛ рдирд╡реАрди рдореЙрдбреНрдпреВрд▓рд╕рд╛рдареА рдбреЙрдХрд░рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдорджрдд рдХрд░рдд рдЖрд╣реЗ.
AI: рдорд▓рд╛ рдПрдХ рдирдЬрд░ рдЯрд╛рдХреВ рджреЗ... рддреБрдореНрд╣реА рдЗрдереЗ рдХрд╛рдп рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ, рддреБрдореНрд╣реА рд╡реЗрдЧрд│реНрдпрд╛ рдХрдорд╛рдВрдбрдиреЗ рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рд╕рд╛рдл рдХрд░рддрд╛, рд╣рд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрд░ рдЖрд╣реЗ... рдкрдг рддреБрдореНрд╣реА Gemfile рдХреЙрдкреА рдХреЗрд▓реА рдирд╕реЗрд▓ рддрд░ рддреБрдореНрд╣реА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдХрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рд▓! рдЖрдгрд┐ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рд╣реЗ рдЪрд╛рдВрдЧрд▓реЗ рдирд╛рд╣реА.
рдкреАрдЯрд░: рдХреГрдкрдпрд╛ рддреБрдордЪреНрдпрд╛ рд╡реНрдпрд╡рд╕рд╛рдпрд╛рдХрдбреЗ рдЬрд╛, рдЖрдореНрд╣реА рддреЗ рдХрд╕реЗ рддрд░реА рд╢реЛрдзреВрди рдХрд╛рдвреВ.

рдЗрдЧреЛрд░ рдЗрд╡реНрд╣рд╛рдиреЛрд╡рд┐рдЪ рджреБрдГрдЦрд╛рдиреЗ рдЙрд╕рд╛рд╕рд╛ рдЯрд╛рдХрддреЛ рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛрдгреА рддреЛрдбрд▓рд╛ рд╣реЗ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдШреВрди рдЬрд╛рддреЛ.

рдкреАрдЯрд░: рд╣реЛрдп, рдкрд░рдВрддреБ рддреЛ рдХреЛрдбрдмрджреНрджрд▓ рдмрд░реЛрдмрд░ рд╣реЛрддрд╛, рдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ рдкреНрд░рддрд┐рдореЗрдд рдврдХрд▓рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЖрдгрд┐ ssh рдЖрдгрд┐ рд╕реБрдкрд░рд╡рд╛рдпрдЭрд░ рддрд╛рдмрдбрддреЛрдм рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ, рдЕрдиреНрдпрдерд╛ рдЖрдореНрд╣реА рдбрд┐рдорди рд╕реБрд░реВ рдХрд░реВ.

рд╡реЕрд╕рд┐рд▓реА: рдордЧ рдореА рдкреНрд░рдердо 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/* 

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

10 рдорд┐рдирд┐рдЯреЗ рдЖрдгрд┐ рдорд╛рдВрдЬрд░реАрдВрдмрджреНрджрд▓ рджреЛрди рд╡реНрд╣рд┐рдбрд┐рдУ рдирдВрддрд░.

рдкреНрд░рд╢реНрди: рдореА рд╕рд░реНрд╡ рдХрд╛рд╣реА рдХреЗрд▓реЗ рдЖрд╣реЗ. рдореА рдЖрдгрдЦреА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдЬреЛрдбрд▓реНрдпрд╛.
рдкреА: рдорд▓рд╛ рджрд╛рдЦрд╡рд╛!

рдбреЙрдХрд░рдлрд╛рдЗрд▓рдЪреА рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреА:

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тАЭ]

рдкреА: рдЫрд╛рди, рдорд▓рд╛ рддреЗ рдЖрд╡рдбрддреЗ. рдЖрдгрд┐ рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рд░рд╢рд┐рдпрди, рд╕реЛрдпреАрд╕реНрдХрд░ рдЖрдгрд┐ рд╡рд╛рдЪрдиреАрдп рдЖрд╣реЗрдд, рдкреНрд░рддреНрдпреЗрдХрдЬрдг рддреНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рдХрд╛рд░реНрдп рдХрд░реЗрд▓. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╢рд┐рдХрд╡рд▓реЗ рдЖрд╣реЗ, рдмрд╛рдХреАрдЪреЗ рддреБрдореНрд╣реА рд╕реНрд╡рддрдГ рдХрд░реВ рд╢рдХрддрд╛. рдЪрд▓ рдХреЙрдлреА рдШреЗрдКрдпрд╛...

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

рдореА рдЧреНрд░рд┐рдЧреЛрд░реА рдСрд╕реНрдЯрд░рдЪреНрдпрд╛ рдПрдХрд╛ рдХреЛрдЯрд╕рд╣ рд╕рдорд╛рдкреНрдд рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ:

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛