ื“ืึธืงืขืจ: ืฉืœืขื›ื˜ ืขืฆื”

ื“ืึธืงืขืจ: ืฉืœืขื›ื˜ ืขืฆื”

ื•ื•ืขืŸ ืื™ืš ื”ืึธื‘ ื’ืขืœืขืจื ื˜ ืคืึธืจ ืึท ืžืึทืฉื™ืŸ, ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืœืขืงืฆื™ืข ื“ืขืจ ื™ื ืกื˜ืจืึทืงื˜ืขืจ ื“ืจืึธื•ื•ืข ืื™ืŸ ื“ื™ ื™ื ื˜ืขืจืกืขืงืฉืึทืŸ ืื™ืŸ ืคืึทืจืงืขืจื˜, ืื•ืŸ ื“ืขืžืึธืœื˜ ื’ืขื–ืื’ื˜ ืึทื– ืื™ืจ ื–ืึธืœ ื ื™ืฉื˜ ื˜ืึธืŸ ื“ืึธืก - ืงื™ื™ื ืžืึธืœ ืื™ืŸ ืึทืœืข. ืื™ ืš ื”ื ื‘ ื’ืขื“ืขื  ืง ื“ืข ื ื›ืœืœ , ื’ืœื™ื™ืš , ืื• ืŸ ื ื’ืื  ืฅ ืœืขื‘ืŸ .

ืื™ืจ ืœื™ื™ืขื ืขืŸ "ืฉืœืขื›ื˜ ืขืฆื”" ืคื•ืŸ ื’ืจื™ื’ืึธืจื™ ืึธืกื˜ืขืจ ืคึฟืึทืจ ืงื™ื ื“ืขืจ, ืื•ืŸ ืื™ืจ ื–ืขืŸ ื•ื•ื™ ื’ืจื™ื ื’ ืื•ืŸ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืขืก ื“ืึธื ื– ืฆื• ื–ื™ื™ ืึทื– ื–ื™ื™ ื–ืึธืœ ื ื™ืฉื˜ ื˜ืึธืŸ ื“ืึธืก.

ืคื™ืœืข ืึทืจื˜ื™ืงืœืขืŸ ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ ื•ื•ืขื’ืŸ ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท Dockerfile ืจื™ื›ื˜ื™ืง. ืึธื‘ืขืจ ืื™ืš ื”ืึธื‘ ื ื™ืฉื˜ ื’ืขืคึฟื•ื ืขืŸ ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืคืึทืœืฉ ื“ืึธืงืงืขืจืคื™ืœืขืก. ืื™ืš ื‘ื™ืŸ ืคื™ืœื•ื ื’ ื“ืขื ืจื™ืก. ืื•ืŸ ืืคึฟืฉืจ ืื™ืŸ ื“ื™ ืคึผืจืึทื“ื–ืฉืขืงืก ื•ื•ืึธืก ืื™ืš ื‘ืึทืงื•ืžืขืŸ ืฉื˜ื™ืฆืŸ, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื•ื•ื™ื™ื ื™ืงืขืจืข ืึทื–ืขืœื›ืข ื“ืึธืงืขืจืคื™ืœืขืก.

ื›ืœ ืื•ืชื™ื•ืช, ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ืื•ืŸ Dockerfile ื–ืขื ืขืŸ ืคื™ืงื˜ื™ืฉืึทืก. ืื•ื™ื‘ ืื™ืจ ื“ืขืจืงืขื ืขืŸ ื–ื™ืš, ืื ื˜ืฉื•ืœื“ื™ื’ื˜.

ืงืจื™ื™ื™ื˜ื™ื ื’ ืึท ื“ืึธืงืงืขืจืคื™ืœืข, ืึทืžืึทื ืึทืก ืื•ืŸ ืฉืจืขืงืœืขืš

ืคืขื˜ืจื•ืก (ืขืœื˜ืขืจ ื“ื–ืฉืึทื•ื•ืึท / ืจื•ื‘ื™ / ืคืคึผ ื“ืขื•ื•ืขืœืึธืคึผืขืจ): ืงืึธืœืขื’ืข ื•ื•ืึทืกื™ืœื™, ื”ืึธื˜ ืื™ืจ ืฉื•ื™ืŸ ื•ืคึผืœืึธืึทื“ืขื“ ืึท ื ื™ื™ึทืข ืžืึธื“ื•ืœืข ืฆื• ื“ืึธืงืขืจ?
ื•ื•ืึทืกื™ืœื™ (ื™ื™ื ื’ืขืจ): ื ื™ื™ืŸ, ืื™ืš ื”ืื˜ ื ื™ืฉื˜ ื”ืึธื‘ืŸ ืฆื™ื™ื˜, ืื™ืš ืงืขืŸ ื ื™ืฉื˜ ื’ืขืคึฟื™ื ืขืŸ ืขืก ืžื™ื˜ ื“ืขื ื“ืึธืงืงืขืจ. ืขืก ื–ืขื ืขืŸ ืึทื–ื•ื™ ืคื™ืœืข ืึทืจื˜ื™ืงืœืขืŸ ืื•ื™ืฃ ืขืก, ืขืก ืื™ื– ื“ื™ื–ื™ื™ื ื’.

ืคืขื˜ืจื•ืก: ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื˜ืขืจืžื™ืŸ ืžื™ื˜ ืึท ื™ืึธืจ ืฆื•ืจื™ืง. ืœืึธื–ืŸ ืžื™ืจ ื”ืขืœืคืŸ ืื™ืจ, ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื›ืขื ืขืŸ ืขืก ืื•ื™ืก ืื™ืŸ ื“ืขื ืคึผืจืึธืฆืขืก. ื–ืื’ ืžื™ืจ ื•ื•ืึธืก ื˜ื•ื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ ืคึฟืึทืจ ืื™ืจ.

ื•ื•ืึทืกื™ืœื™: ืื™ืš ืงืขืŸ ื ื™ืฉื˜ ืงืœื™ื™ึทื‘ืŸ ืึท ื™ืงืขืจื“ื™ืง ื‘ื™ืœื“ ืึทื–ื•ื™ ืึทื– ืขืก ืื™ื– ืžื™ื ื™ืžืึทืœ, ืึธื‘ืขืจ ื”ืื˜ ืึทืœืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ.
ืคืขื˜ืจื•ืก: ื ืขืžืขืŸ ื“ื™ ื•ื‘ื•ื ื˜ื• ื‘ื™ืœื“, ืขืก ื”ืื˜ ืึทืœืฅ ืื™ืจ ื“ืึทืจืคึฟืŸ. ืื•ืŸ ื•ื•ืึธืก ืื™ื– ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื•ืžื ื™ื™ื˜ื™ืง ื–ืื›ืŸ ื•ื•ืขื˜ ืงื•ืžืขืŸ ืื™ืŸ ื”ืึทื ื˜ื™ืง ืฉืคึผืขื˜ืขืจ. ืื•ืŸ ื˜ืึธืŸ ื ื™ื˜ ืคืึทืจื’ืขืกืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืœืขืฆื˜ืข ืงื•ื•ื™ื˜ืœ ืึทื–ื•ื™ ืึทื– ื“ื™ ื•ื•ืขืจืกื™ืข ืื™ื– ืฉื˜ืขื ื“ื™ืง ื“ื™ ืœืขืฆื˜ืข.

ืื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉื•ืจื” ืื™ื– ืื™ืŸ ื“ื™ 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/*

ื“ืขืจื ืึธืš ื™ื’ืึธืจ ื™ื•ื•ืึทื ืึธื•ื•ื™ื˜ืฉ, ื“ืขื•ื•ืึธืคึผืก (ืึธื‘ืขืจ ืžืขืจ ืึธืคึผืก ื•ื•ื™ ื“ืขื•ื•), ื‘ืขืจืกืฅ ืื™ืŸ ื“ื™ ืึธืคื™ืก ืฉืึทื•ื˜ื™ื ื’:

AI: ืคึผืขื˜ื™ืึท, ื“ื™ื™ืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ืฆืขื‘ืจืื›ืŸ ื“ื™ ืขืกื ื•ื•ืึทืจื’ ื“ืึทื˜ืึทื‘ื™ื™ืก ื•ื•ื™ื“ืขืจ, ื•ื•ืขืŸ ื•ื•ืขื˜ ื“ืึธืก ืกื•ืฃ ...

ื ืึธืš ืึท ืงืœื™ื™ืŸ ืฆื•ื ื•ื™ืคืฉื˜ื•ื™ืก, ื™ื’ืึธืจ ื™ื•ื•ืึทื ืึธื•ื•ื™ื˜ืฉ ืงื™ืœ ืึทืจืึธืคึผ ืื•ืŸ ื”ื™ื™ื‘ื˜ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก ื–ื™ื™ืŸ ื—ื‘ืจื™ื ื˜ืึธืŸ ื“ืึธ.

ืื™ื™: ื•ื•ืืก ื˜ื•ืกื˜ื•?
Vasily: ืคืขื˜ืจื•ืก ื”ืขืœืคึผืก ืžื™ืจ ืฆื• ืฉืึทืคึฟืŸ ืึท ื“ืึธืงืงืขืจืคื™ืœืข ืคึฟืึทืจ ืึท ื ื™ื™ึทืข ืžืึธื“ื•ืœืข.
ืึทื™: ืœืึธื– ืžื™ืจ ืึท ืงื•ืง ื˜ืึธืŸ... ื•ื•ืึธืก ื”ืึธื˜ ืื™ืจ ื“ืึธ ื’ืขืฉืจื™ื‘ืŸ, ืื™ืจ ืจื™ื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืžื™ื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ื‘ืึทืคึฟืขืœ, ื“ืึธืก ืื™ื– ืึทืŸ ื ืึธืš ืฉื™ื›ื˜ืข... ืึธื‘ืขืจ ื•ื•ื™ ื˜ืึธืŸ ืื™ืจ ื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืื•ื™ื‘ ืื™ืจ ื”ืึธื˜ ื ื™ืฉื˜ ืงืึทืคึผื™ื“ ื“ื™ ื’ืขืžืคื™ืœืข! ืื•ืŸ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื’ื•ื˜.
ืคืขื˜ืจื•ืก: ื‘ื™ื˜ืข ื’ื™ื™ืŸ ื•ื•ืขื’ืŸ ื“ื™ื™ืŸ ื’ืขืฉืขืคื˜, ืžื™ืจ ื•ื•ืขืœืŸ ื’ืขืคึฟื™ื ืขืŸ ืขืก ืขืคืขืก.

ื™ื’ืึธืจ ืื™ื•ื•ืื ืึธื•ื•ื™ื˜ืฉ ื–ื™ืคืฆื˜ ื˜ืจื•ื™ืขืจื™ืง ืื•ืŸ ืœืึธื–ื˜ ื–ื™ืš ืื•ื™ืกืคืึธืจืฉืŸ ื•ื•ืขืจ ื”ืึธื˜ ืฆืขื‘ืจืึธื›ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก.

ืคืขื˜ืจื•ืก: ื™ืึธ, ืึธื‘ืขืจ ืขืจ ืื™ื– ื’ืขื•ื•ืขืŸ ืจืขื›ื˜ ื•ื•ืขื’ืŸ ื“ืขื ืงืึธื“, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ื•ืคึผืŸ ืขืก ืื™ืŸ ื“ื™ ื‘ื™ืœื“. ืื•ืŸ ืœืึธืžื™ืจ ื’ืœื™ื™ืš ื™ื ืกื˜ืึทืœื™ืจืŸ ssh ืื•ืŸ ืžืึทืฉื’ื™ืขืš, ืึทื ื“ืขืจืฉ ืžื™ืจ ื•ื•ืขืœืŸ ืึธื ื”ื™ื™ื‘ืŸ ื“ื™ ื“ืขืžืึธื ืก.

ื•ื•ืึทืกื™ืœื™: ื“ืขืžืึธืœื˜ ืื™ืš ื•ื•ืขื˜ ืขืจืฉื˜ืขืจ ื ืึธื›ืžืึทื›ืŸ ื“ื™ Gemfile ืื•ืŸ Gemfile.lock, ื“ืขืžืึธืœื˜ ืื™ืš ื•ื•ืขื˜ ื™ื ืกื˜ืึทืœื™ืจืŸ ืึทืœืฅ, ืื•ืŸ ื“ืขืžืึธืœื˜ ืื™ืš ื•ื•ืขืœ ื ืึธื›ืžืึทื›ืŸ ื“ื™ ื’ืื ืฆืข ืคึผืจื•ื™ืขืงื˜. ืื•ื™ื‘ ื“ื™ Gemfile ื˜ื•ื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ, ื“ื™ ืฉื™ื›ื˜ืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื ื•ืžืขืŸ ืคื•ืŸ ื“ื™ ืงืึทืฉ.
ืคืขื˜ืจื•ืก: ืคืืจื•ื•ืืก ื–ืขื ืขืŸ ืื™ืจ ืึทืœืข ืžื™ื˜ ื“ื™ ืœื™ื™ึทืขืจืก, ืงืึธืคึผื™ืข ืึทืœืฅ ืื™ืŸ ืึทืžืึธืœ. ืงืึธืคึผื™ ืจืขื›ื˜ ืึทื•ื•ืขืง. ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉื•ืจื”.

ื“ื™ 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 ืžื™ื ื•ื˜ ืื•ืŸ ืฆื•ื•ื™ื™ ื•ื•ื™ื“ื™ืืก ื•ื•ืขื’ืŸ ืงืึทืฅ ืฉืคึผืขื˜ืขืจ.

ืง: ืื™ืš ื”ืึธื‘ืŸ ื’ืขื˜ืืŸ ืึทืœืฅ. ืื™ืš ื”ืื‘ ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ืืš ืชื’ื•ื‘ื•ืช.
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: ื’ืจื•ื™ืก, ืื™ืš ื•ื•ื™ ืขืก. ืื•ืŸ ื“ื™ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื–ืขื ืขืŸ ืื™ืŸ ืจื•ืกื™ืฉ, ื‘ืึทืงื•ื•ืขื ืื•ืŸ ืœื™ื™ื ืขื•ื•ื“ื™ืง, ืึทืœืขืžืขืŸ ื•ื•ืึธืœื˜ ืึทืจื‘ืขื˜ืŸ ืึทื–ื•ื™. ืื™ืš ื”ืึธื‘ ื“ื™ืจ ืึทืœืฅ ื’ืขืœืขืจื ื˜, ื“ื™ ืื™ื‘ืขืจื™ืงืข ืงืขื ืกื˜ ืื™ืจ ืึทืœื™ื™ืŸ ื˜ืึธืŸ. ืœืืžื™ืจ ื’ื™ื™ืŸ ื˜ืจื™ื ืงืขืŸ ืงืืคื™...

ื ื•, ืื™ืฆื˜ ืžื™ืจ ื”ืึธื‘ืŸ ืึท ื’ืื ืฅ ืฉืจืขืงืœืขืš ื“ืึธืงืงืขืจืคื™ืœืข, ื“ื™ ื“ืขืจื–ืขืŸ ืคื•ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ืžืึทื›ืŸ ื™ื’ืึธืจ ื™ื•ื•ืึทื ืึธื•ื•ื™ื˜ืฉ ื•ื•ื™ืœืŸ ืฆื• ืคืึทืจืœืึธื–ืŸ ืื•ืŸ ื–ื™ื™ืŸ ืื•ื™ื’ืŸ ื•ื•ืขื˜ ืฉืึทื˜ืŸ ืคึฟืึทืจ ื ืึธืš ืึท ื•ื•ืึธืš. ื“ื™ Dockerfile, ืคื•ืŸ ืงื•ืจืก, ืงืขืŸ ื–ื™ื™ืŸ ืืคื™ืœื• ืขืจื’ืขืจ, ืขืก ืื™ื– ืงื™ื™ืŸ ืฉื™ืขื•ืจ ืฆื• ืฉืœื™ื™ืžืขืก. ืื‘ืขืจ ืคึฟืึทืจ ืึท ืึธื ื”ื™ื™ื‘, ื“ืึธืก ื•ื•ืขื˜ ื˜ืึธืŸ.

ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืขื ื“ื™ืงืŸ ืžื™ื˜ ืึท ืฆื™ื˜ืึทื˜ ืคื•ืŸ ื’ืจื™ื’ืึธืจื™ ืึธืกื˜ืขืจ:

ืื•ื™ื‘ ืื™ืจ ื ื™ื˜ืึธ ื ื™ื˜ ื–ื™ื›ืขืจ ื ืึธืš
ืžื™ืจ ื”ืึธื‘ืŸ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ื“ืขื ื•ื•ืขื’ ืื™ืŸ ืœืขื‘ืŸ,
ืื•ืŸ ื“ื• ื•ื•ื™ื™ืกื˜ ื ื™ืฉื˜ ืคืืจื•ื•ืืก
ืึธื ื”ื™ื™ื‘ ื“ื™ื™ืŸ ืึทืจื‘ืขื˜ ื ืกื™ืขื”,
ื‘ืจืขื›ืŸ ื“ื™ ืœื™ื›ื˜ ื‘ืึทืœื‘ื– ืื™ืŸ ื“ื™ ื›ืึธืœื•ื•ื™ื™ื– -
ืžืขื ื˜ืฉืŸ ื•ื•ืขืœืŸ ื–ืึธื’ืŸ "ื“ืื ืง ืื™ืจ" ืฆื• ืื™ืจ.
ืื™ืจ ื•ื•ืขื˜ ื”ืขืœืคืŸ ื“ื™ ืžืขื ื˜ืฉืŸ
ื”ื™ื˜ ืขืœืขืงื˜ืจืข.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’