рдбреЙрдХрд░: рдмреБрд░реА рд╕рд▓рд╛рд╣

рдбреЙрдХрд░: рдмреБрд░реА рд╕рд▓рд╛рд╣

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

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

Dockerfile рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд▓рд┐рдЦреЗрдВ, рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЧрд▓рдд Dockerfiles рд▓рд┐рдЦрдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓реЗред рдореИрдВ рдЗрд╕ рдХрдореА рдХреЛ рдкреВрд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ. рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореБрдЭреЗ рд╕рдорд░реНрдерди рдорд┐рд▓рддрд╛ рд╣реИ, рдЙрдирдореЗрдВ рдРрд╕реА рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрдо рд╣реЛрдВрдЧреАред

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

рдбреЙрдХрд░рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛, рдЕрд╢реБрдн рдФрд░ рднрдпрд╛рдирдХ

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

рдкреАрдЯрд░: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рд╕рдордп рд╕реАрдорд╛ рдереАред рдореБрдЭреЗ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рджреАрдЬрд┐рдП, рд╣рдо рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрдВрдЧреЗред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛?

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

рдФрд░ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ Dockerfile рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

FROM ubuntu:latest

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

Dockerfile рдмрдврд╝рддреА рд╣реИ:

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/*

рддрдм рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ, рдбреЗрд╡рдСрдкреНрд╕ (рд▓реЗрдХрд┐рди рджреЗрд╡ рд╕реЗ рдЕрдзрд┐рдХ рдСрдкреНрд╕), рдЪрд┐рд▓реНрд▓рд╛рддреЗ рд╣реБрдП рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдШреБрд╕реЗ:

рдПрдЖрдИ: рдкреЗрдЯреНрдпрд╛, рдЖрдкрдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЦрд╛рджреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдлрд┐рд░ рд╕реЗ рддреЛрдбрд╝ рджрд┐рдпрд╛, рдпрд╣ рдХрдм рдЦрддреНрдо рд╣реЛрдЧрд╛...

рдПрдХ рдЫреЛрдЯреА рд╕реА рдЭрдбрд╝рдк рдХреЗ рдмрд╛рдж, рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ рд╢рд╛рдВрдд рд╣реЛ рдЧрдП рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдЙрдирдХреЗ рд╕рд╣рдпреЛрдЧреА рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдЗрдЧреЛрд░ рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ рдЙрджрд╛рд╕ рд╣реЛрдХрд░ рдЖрд╣ рднрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрд▓ рдкрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдХрд┐рд╕рдиреЗ рддреЛрдбрд╝рд╛ред

рдкреАрдЯрд░: рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рд╡рд╣ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рдерд╛, рд╣рдореЗрдВ рдЗрд╕реЗ рдЫрд╡рд┐ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред рдФрд░ рдЖрдЗрдП рддреБрд░рдВрдд рдПрд╕рдПрд╕рдПрдЪ рдФрд░ рдкрд░реНрдпрд╡реЗрдХреНрд╖рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╣рдо рдбреЗрдореЙрди рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред

рд╡рд╕реАрд▓реА: рдлрд┐рд░ рдореИрдВ рдкрд╣рд▓реЗ Gemfile рдФрд░ Gemfile.lock рдХреЛ рдХреЙрдкреА рдХрд░реВрдВрдЧрд╛, рдлрд┐рд░ рдореИрдВ рд╕рдм рдХреБрдЫ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реВрдВрдЧрд╛, рдФрд░ рдлрд┐рд░ рдореИрдВ рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЬреЗрдордлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдкрд░рдд рдХреИрд╢ рд╕реЗ рд▓реА рдЬрд╛рдПрдЧреАред
рдкреАрдЯрд░: рдЖрдк рд╕рднреА рдЗрди рдкрд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпреЛрдВ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВред рддреБрд░рдВрдд рдХреЙрдкреА рдХрд░реЗрдВ. рд╕рдмрд╕реЗ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐.

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
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/* 

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

10 рдорд┐рдирдЯ рдФрд░ рдмрд╛рдж рдореЗрдВ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЛ рд╡реАрдбрд┐рдпреЛред

рдкреНрд░рд╢реНтАНрди: рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реАрдВред
рдкреА: рдореБрдЭреЗ рджрд┐рдЦрд╛рдУ!

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

рдкреА: рдмрдврд╝рд┐рдпрд╛, рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИред рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд░реВрд╕реА рдореЗрдВ рд╣реИрдВ, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдкрдардиреАрдп рд╣реИрдВ, рд╣рд░ рдХреЛрдИ рдЗрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореИрдВрдиреЗ рддреБрдореНрд╣реЗрдВ рд╕рдм рдХреБрдЫ рд╕рд┐рдЦрд╛рдпрд╛, рдмрд╛рдХреА рддреБрдо рд╕реНрд╡рдпрдВ рдХрд░ рд╕рдХрддреЗ рд╣реЛред рдЪрд▓реЛ рдХреБрдЫ рдХреЙрдлрд╝реА рдкреАрддреЗ рд╣реИрдВ...

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

рдореИрдВ рдЧреНрд░рд┐рдЧреЛрд░реА рдУрд╕реНрдЯрд░ рдХреЗ рдПрдХ рдЙрджреНрдзрд░рдг рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдмрд╛рдд рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ