ááŤáˇááąáŹááşá¸ááŤá¸áĄáá˝ááşáážááşááťááşááťáŹá¸ áááşá¸áá˝ááşááąáŹáşááźááŹá¸ááąáŹ Dockerfile áááş áĄáááşááźáąáŹááˇáş áĄáá˝ááşááźáąáŹááşá ááŹááąáŹááşá¸ááźáąáŹááşá¸ áážááşá¸ááźáááş ááąáŹááşá¸áááŻáážáŻááťáŹá¸á á˝áŹáážááá˛áˇáááşá
ááááşá áŽá¸ááŽá¸ááĄááťááşá¸ááťáŻááşâ ááąáŹáˇááşáá˛ááąá¸ááŹá¸áá° áážá áşáŚá¸áááş áááşá¸ááťááşááąáŹ áááşáážááşáááşáĄáąáŹááşáá˝ááş Dockerfile áá áşááŻááᯠááąá¸áá˝á˛áˇáááşá ááŻááşáááşá¸á ááşáá˝ááş Ops Igor Ivanovich áááş áááşá¸áááŻáˇááś ááąáŹááşááŹáááşá ááááş Dockerfile áááş áĄáá˝ááşáááŻá¸áá˝áŹá¸ááąáŹááźáąáŹááˇáş AI áááş áážááŻáśá¸ááąáŹááşááŻááŽá¸ááŤá¸ááźá áşááąááźáŽááźá áşáááşá

áĄáᯠáᎠDockerfile áážáŹ ááŹáážáŹá¸ááąáᲠáĄááźáąáážáŹááźááˇáşááĄáąáŹááşá
ááŽáááŻáá˛áˇ áá áşáááşááťáąáŹáşáá˝áŹá¸ááŤááźáŽá
Dev Petya áááş ááąáŹáşááŽáá áşáá˝ááşááźááˇáş ááááşá¸á áŹá¸áááşá¸áá˝ááş Ops Igor Ivanovich áážááˇáş áá˝áąáˇááŻáśáááşá
P: Igor Ivanovich áááşá¸á áĄáááşá¸áĄááŻááşááťáŹá¸ááąááŹá¸á ááŤáááŻáˇ áááşáážáŹ ááąáŤááşáá˛áˇááŹáᲠáááŻáᏠááááťááşááŤáááşá
AI- ááąáŹááşá¸ááŤáááşá áĄááźááşááŻááşááźááşá¸ááᯠá
áááşáááşá
áŹá¸áá˛áˇ developer áá˝áąáá˛áˇ áááźáŹáá áá˝áąáˇááŻáśááąáˇááážáááŤáá°á¸á
ááááĄááťááş áĄáááşá¸áááşááᯠáááąáŹáá°ááźááŤá
ááŻáˇá
- Docker áááąáŹáááŹá¸- áá˝ááşááááşááŹáá áşáᯠ- ááŻááşáááşá¸á ááşáá áşááŻá
- áá°á¸ááąá¸ááąááą áááŻááąáŹááşá¸ááąááŤáá˛á
- áááşáážáşáááą ááťáŹá¸ááťáŹá¸áá°ááą áááŻááąáŹááşá¸ááąááŤáá˛á
P: áá˝ááşááááşááŹáá áşááŻáá˝ááş ááŻááşáááşá¸á ááşáá áşáᯠáĄáááşááźáąáŹááˇáşáážááááˇáşááááşá¸á
AI- Docker áááş áá˝ááşááááşááŹáá áşááŻááᯠá áááşááąáŹáĄááŤáá˝ááş pid 1 ááźááˇáş ááŻááşáááşá¸á ááşáĄááźáąáĄááąááᯠá áąáŹááˇáşááźááˇáşáááşá ááŻááşáááşá¸á ááşááąááŻáśá¸áá˝áŹá¸ááŤá Docker áááş áá˝ááşááááşááŹááᯠááźááşáááşá áááşáááş ááźááŻá¸á áŹá¸áááşá áááˇáşáá˝ááş áá˝ááşááááşááŹáá áşááŻáá˝ááş ááŻááşááąáŹááşááąáááˇáş áĄáááŽááąá¸áážááşá¸ááťáŹá¸á á˝áŹáážááááşáááŻááŤá ááŻáˇ áááŻáˇáááŻááş áááşááĄáááŽááąá¸áážááşá¸áááş pid 1 ááźááˇáş ááŻááşááąáŹááşááąááźááşá¸áááŻááşááąá ááŻááşáááşá¸á ááşááąááŻáśá¸áá˝áŹá¸ááŤá Docker áááş áááşá¸áĄááźáąáŹááşá¸ááᯠáááážááááşáááŻááşááŤá
áááˇáşáá˝ááş ááąáŹááşáááşááąá¸áá˝ááşá¸ááťáŹá¸ááážáááŤáá áááşá Dockerfile ááᯠááťá˝ááşáŻááşáááŻáˇáĄáŹá¸ ááźáááŤá
Petya áááźáááşá
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/*
RUN rake assets:precompile
# ĐапŃŃкаоП ŃĐşŃипŃ, ĐżŃи ŃŃаŃŃĐľ кОнŃоКноŃа, кОŃĐžŃŃĐš СапŃŃŃĐ¸Ń Đ˛ŃĐľ ĐžŃŃаНŃнОо.
CMD ["/app/init.sh"]AI: áĄááŻá¸á ááĄáąáŹááşáá°á áááá áŹááźáąáŹááşá¸ááźááˇáş á ááźááŤá ááŻáˇá
FROM ubuntu:latestáááşá¸ tag áááŻáá° latest. tag áááŻáĄááŻáśá¸ááźáŻááźááşá¸á latest ááááˇáşáážááşá¸áááŻááşááąáŹ áĄááťááŻá¸áááşááťáŹá¸ááᯠááźá
áşááąáŤáşá
áąáááşá ááŻááşááŻáśááááşá¸ááááşá¸áá°áááş ááá°ááŽááąáŹááąáŹáˇááşáá˛ááşá
áŹáááşá¸ááźááˇáş ááŻáśáááŹá¸áážááşá¸áĄáá
áşááᯠáááşááŽá¸áááşáᯠááźááşááąáŹááşááźááˇáşááŤá á¤ááŻáśáááş ááąáŹááşááŻáśá¸ááąáŤáşáááşááşááᯠááážááááşá áĄááąáŹááşá¸ááŻáśá¸áĄááąáážááˇáş áááˇáşáá˝ááşááááşááŹáááş áááşááąáŹááşááźááşá¸ááᯠáááşáá˝áŹá¸áᏠáĄáááŻá¸ááŻáśá¸áážáŹ áááşáááş ááááşáááážááá˛áˇááąáŹ áááŻá¸ááąáŹááşááťáŹá¸ááᯠáááşá¸ááááźááşá¸ááźá
áşáááşá
áááşáááş áá˝ááşááááşááŹá áĄááśáĄáááŻá¸áĄááťááşááᯠáááŻá¸á áąááąáŹ ááááŻáĄááşááąáŹ ááąáŹáˇááşáá˛ááşááťáŹá¸á á˝áŹááźááˇáş ááźááˇáşá áŻáśááąáŹ OS ááźááˇáş ááŻáśáá áşááŻáśááᯠáá°ááŤá ááąáŹáˇááşáá˛ááşááťáŹá¸ááąááąá áĄááąáŤááşááťáŹá¸áážááˇáş áĄáŹá¸áááşá¸ááťááşááťáŹá¸ ááťáŹá¸ááąááąááźá áşáááşá
áááŻáˇáĄááźááşá ááŻáśáááŻááźáŽá¸ááąá host áážááˇáş registry áá˝ááş ááąááŹáááŻáá°ááą (ááŻáśááťáŹá¸ááᯠáá áşááąááŹááŹáážáŹ ááááşá¸áááşá¸ááŹá¸áááŹá¸)á
P: ááŻááşááŤáááşá ááŤáááŻáˇáážáŹ áážááşááŻáśáááşáá áşááŻáážááááşá áááşá¸ áĄá˛ááŤááᯠá ááŻááşáááşá
AI- ááŤááᯠááŤááŹááźáąáŹááąááŹáá˛?... áĄááŻá¸á áááŹáááťáŹá¸... áá˝ááşáááşááąáŤáşáážá áááşáĄáŹá¸áááşá¸ áááŻá¸ááŹáááşá ááŻáśáá áşááŻáśáááşá¸áĄáá˝ááş áááşá¸áááş ááááŹáááşáážáŹá¸ááźááşá¸ááážáááąáŹáşáááşá¸ á ááşáááşáááźááşáááşááąáŹááşáážáŻá á ááşá¸áááşáážáŻááťáŹá¸áážááˇáş ááźááˇáşááťááşáážáŻáážáááŹááąáŹáĄá፠áááşá¸áááş ááááŹáááşá áááˇáşáá˝ááş AWS áá˝ááş God's mode ááážáááŤáá áááşáááş á ááźáŹáá áŹáá˝áąááąáŹááşá¸ááśáá˝ážáŹáááŻáááşá¸ ááážááááşááźá áşáááşá
áááŻáˇááźáąáŹááˇáşá áĄáááĄááťááŹá¸áážááşá¸áážááˇáş áĄááááˇáşááŻáśá¸ááąáŹáˇááşáá˛ááşááźááˇáş áĄáááˇáşááąáŹáşááŻáśá¸ááŻáśááᯠáá˝áąá¸ááťááşáááş áááŻáĄááşáááşá áĽááᏠáá°ááŤ- FROM ruby:2.5.5-stretch
P: áĄááŻá¸á ááŤááźááşáááşá ááááŻááşááąáŹááŻáśááťáŹá¸áááŻáááşáááŻáˇáážááˇáşáááşáááˇáşááąááŹáá˝ááşááźááˇáşáážáŻáááŻááşáááşáááşá¸á ááŤáááşááŹáááŻáĄááşáááşáááŻáᏠáááşáááŻáááááŻááşááá˛á
AI- áĄááťáŹá¸áĄáŹá¸ááźááˇáş ááŻáśáá˝áąááᯠáá°ááŤáááşá pornhub áá˛áˇ áááąáŹáá˝áąá¸ááŤáá˛áˇ :) ááťáŹá¸ááąáŹáĄáŹá¸ááźááˇáş ááŻáśáá
áşááŻáśáĄáá˝ááş áĄá
áŻáĄááąá¸ááťáŹá¸á
á˝áŹáážááááş-
alpine: ááŻáśááťáŹá¸ááᯠ5 MB ááŹáážáááąáŹ minimalistic Linux ááŻáśááąáŤáşáá˝ááş á
áŻááąáŹááşá¸ááŹá¸áááşá áááşá¸ááĄáŹá¸áááşá¸ááťááş- áááşá¸ááᯠáááşá¸ááááŻááşáááŻááş libc áĄááąáŹááşáĄáááşááąáŹáşáážáŻááźááˇáş á
áŻá
ááşá¸ááŹá¸ááźáŽá¸ á
áśáááşááąáˇááşáťááťáŹá¸áááş áááşá¸áá˝ááş áĄááŻááşáááŻááşááŤá áááŻáĄááşááąáŹ áááşááąáˇááşáťááᯠáážáŹáá˝áąááźááşá¸áážááˇáş áááˇáşáá˝ááşá¸ááźááşá¸áážáŹ áĄááťáááşááťáŹá¸á
á˝áŹ áá°áááááˇáşáááşá
ááŻááşááźá
áşááŹ: base image ááᯠáĄááźáŹá¸ááŻáśááťáŹá¸ áááşááąáŹááşááŹáá˝ááş áĄááŻáśá¸áááźáŻááŤá áááşá¸áááş binaryá ááźááşáááşááŹá¸ááąáŹááąááŹááᯠááŻááşááąáŹááşáááşáĄáá˝ááşáᏠáááşáá˝ááşááŤáááşá GO áĄáááŽááąá¸áážááşá¸ááťáŹá¸áá˛áˇáááŻáˇ áááşáááŻáĄááşáááťáž ááŤáááşááąáŹ áá˝ááĄáááŽááąá¸áážááşá¸ááťáŹá¸ááᯠááŻááşááąáŹááşáááşáĄáá˝ááş á
áśááźááźá
áşáááşá
Ubuntu áááŻáˇáááŻááş Debian áá˛áˇáááŻáˇááąáŹ áááşáááˇáş OS áááŻáááᯠáĄááźáąááśááŹá¸áááşá áĄááşá¸á áážááşá¸ááźá
ááŹáááŻáááşááááşáá°á¸á
AI- ááᯠááťá˝ááşáŻááşáááŻáˇáááş áĄáááŻáá ášá ááşá¸ááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠáááˇáşáá˝ááşá¸áááş áááŻáĄááşááŤáááşá packages ááťáŹá¸ áážááˇáş áááşá cache áááŻáážááşá¸áááşá¸ááŤá ááźáŽá¸ááąáŹáˇ ááťááşááťááşá¸ áá˝ážááˇáşáá áşáááŻááşáááŻááşáááşá áááşáá˝ááşááźááşá¸áĄáááşáˇááźážááşáˇ. áááŻáˇáááŻááşááŤáá áááşááąáŹááşáážáŻáá áşááŻá áŽáá˝ááş áĄááźáąááśááŻáśáááŻáśááą tag ááťáŹá¸áážáááąááąáŹáşáááşá¸ ááá°ááŽááąáŹááŻáśááťáŹá¸ááᯠááážááááşááźá áşáááşá ááŻáśáážá áááşááąáˇááťáşááťáŹá¸ááᯠáĄááşááááşááŻááşááźááşá¸áááş ááááşá¸ááááşá¸áá°áááŹáááşááźá áşááźáŽá¸ áááşááᯠááźáąáŹááşá¸áá˛ááźááşá¸ááźááˇáş áááŻááşááŤáá˝áŹá¸áááşááźá áşáááşá
P: ááŻááşáááşá ááŤááźááŻá¸á áŹá¸áá˛áˇáááşá áĄá˛ááŤá ááŽááᯠááźá áşáá˝áŹá¸áááşá
WORKDIR /app
COPY ./ /app
RUN curl -sL https://deb.nodesource.com/setup_9.x | bash -
&& apt-get -y install libpq-dev imagemagick gsfonts ruby-full ssh supervisor nodejs
&& gem install bundler
&& bundle install --without development test --path vendor/bundle
RUN rm -rf /usr/local/bundle/cache/*.gem
&& apt-get clean
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*AI: ááááŻá¸ááŤáá°á¸á ááŤááąáááˇáş ááŻááşá ááŹáá áşááŻáááşá¸ áážááááşá ááźááˇáşááŤá á¤áááşáážáŹ á¤áĄááááˇáşááąáŹáşááźá áşáááş-
RUN rm -rf /usr/local/bundle/cache/*.gem
&& apt-get clean
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ... ááąáŹááşááŻáśá¸ááŻáśááž ááąááŹááᯠáááťááşáá˛á á¤ááąááŹáááŤáᲠááąáŹááşáááş áĄáá˝ážáŹáá áşááŻáááŻáᏠáááşááŽá¸ááŤáááşá á¤áá˛áˇáááŻáˇ áážááşáááşá á˝áŹ
RUN curl -sL https://deb.nodesource.com/setup_9.x | bash -
&& apt-get -y install libpq-dev imagemagick gsfonts nodejs
&& gem install bundler
&& bundle install --without development test --path vendor/bundle
&& rm -rf /usr/local/bundle/cache/*.gem
&& apt-get clean
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ááŤáá˝áąáĄáŹá¸ááŻáśá¸ááąáŹáˇ áááŻááşááŤáá°á¸á Ruby áááşá¸áážáŹ ááŹáážááá˛á áááŻáˇááąáŹááş áĄá áá˝ááş áááąáŹááťááşáá áşááŻááŻáśá¸ááᯠáá°á¸áá°áááş ááááŻáĄááşááŤá Gemfile áážááˇáş Gemfile.lock áááŻáá°á¸áá°áááşááŻáśááąáŹááşááŤáááşá
á¤áááşá¸áááşá¸ááźááˇáşá áĄáááşá¸áĄááźá áşááźáąáŹááşá¸áá˛áážáŻáááŻááşá¸áĄáá˝ááş áĄá áŻáĄááąá¸áááˇáşáá˝ááşá¸ááźááşá¸ááᯠááŻááşááąáŹááşáááşáááŻááşááąáŹáşáááşá¸ Gemfile áááŻáˇáááŻááş Gemfile.lock áááş ááźáąáŹááşá¸áá˛áá˝áŹá¸áážááŹááťážááşá
áá°ááŽááąáŹáááşá¸áááşá¸ááťáŹá¸áááş npmá pipá ááąá¸á ááşáá°áážááˇáş áážáŽáááŻáážáŻá áŹáááşá¸áážáááąáŹ áááŻááşáá áşááŻááąáŤáşáĄááźáąááśá áĄááźáŹá¸ááŹááŹá ááŹá¸ááťáŹá¸ááźá áşáááˇáş npmá pipá ááąá¸áá˝á˛áˇáá°áážááˇáş áĄááźáŹá¸ááŹááŹá ááŹá¸ááťáŹá¸áĄáá˝ááş áĄááŻááşááŻááşáááşá
ááąáŹááşááŻáśá¸áĄááąáá˛áˇ Docker áááąáŹáááŹá¸ "one container - one process" áĄááźáąáŹááşá¸ááᯠáĄá
áážáŹ ááźáąáŹáá˛áˇáᏠáážááşááááŤáááŹá¸á áááŻáááŻáááşáážáŹ ááźáŽá¸ááźááşááąá¸áážá°á¸ ááááŻáĄááşááŤá áá°ááŽááąáŹáĄááźáąáŹááşá¸ááźááťááşááťáŹá¸ááźáąáŹááˇáş systemd áááŻááááşáááşáááˇáşááŤá ááááşááąáŹáˇ Docker áááŻááşáááŻááşá ááźáŽá¸ááźááşáá°ááŤá áááşá¸áá˝ááş ááŻááşáááşá¸á
ááşááťáŹá¸á
á˝áŹááᯠáááşááŻááşááąáŹááşáááˇáşáĄááŤá áááşá¸áááş ááźáŽá¸ááźááşááąá¸áážá°á¸ááŻááşáááşá¸á
ááşáá
áşááŻáá˝ááş áĄááşááşááťáŹá¸á
á˝áŹááᯠááŻááşááąáŹááşááąááá˛áˇáááŻáˇááźá
áşáááşá
áááşááąáŹááşáááˇáşáĄááŤáá˝ááş áááşáááş ááŻáśáá
áşááŻáśáááşá¸ááᯠáááşááŽá¸áááşááźá
áşááźáŽá¸á ááŻááşáááşá¸á
ááşáá
áşááŻá
áŽáá˝ááş áááşáááşáááŻááşáááş áááŻáĄááşááąáŹ áá˝ááşááááşááŹáĄááąáĄáá˝ááşááᯠá
áááşáááŻááşááŤá
ááŤááąáááˇáş ááąáŹááşáááŻááşá¸áážáŹ áááŻááťáŹá¸áááşá
P: ááŤááŹá¸áááşáááşáááşáááşá ááŹááźá áşáá˝áŹá¸áá˛ááźááˇáş
FROM ruby:2.5.5-stretch
WORKDIR /app
COPY Gemfile* /app
RUN curl -sL https://deb.nodesource.com/setup_9.x | bash -
&& apt-get -y install libpq-dev imagemagick gsfonts nodejs
&& gem install bundler
&& bundle install --without development test --path vendor/bundle
&& rm -rf /usr/local/bundle/cache/*.gem
&& apt-get clean
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY . /app
RUN rake assets:precompile
CMD ["bundleâ, âexecâ, âpassengerâ, âstart"]áá˝ááşááááşááŹáááŻá áááşááąáŹáĄá፠daemons ááá áşáá˝ážááşáážáŻáááŻááťá˝ááşáŻááşáááŻáˇááťáąáŹáşáááŻááşááŤáááŹá¸á
AI: ááŻááşáááşá áážááşáááşá á ááŹá¸áá ááşá áááşáááş CMD áážááˇáş ENTRYPOINT áážá áşááťááŻá¸ááŻáśá¸ááᯠááŻáśá¸áááŻááşáááşá ááźáŽá¸ááąáŹáˇ áááşá¸áá˛áˇ áĄáááşá áŹá ááŹáá˝áŹááźáŹá¸áᲠáááŻáᏠáĄááźáąáážáŹááźááˇáşááŤá Habre áá˝ááş á¤áĄááźáąáŹááşá¸áĄááŹáážááˇáş áááşáááşá ááąáŹááşá¸ááąáŹáĄááťááşáá áşááŻáážááááşá .
ááŤááᯠáááşáá˝áŹá¸ááźááĄáąáŹááşá áááşáááş node áááŻáááˇáşáá˝ááşá¸áááş áááŻááşáá áşááŻááᯠááąáŤááşá¸ááŻááşááŻááşááąáŹáşáááşá¸ áááşá¸áá˝ááş áááşáááŻáĄááşááąáŹáĄááŹááťáŹá¸ááŤáááşáááşáᯠáĄáŹáááśááťááşááážáááŤá áĄáááşááźáŻááťááşáááˇáşáááş áááŻáĄááşááŤáááşá áĽáááŹá á¤áá˛áˇáááŻáˇááąáŹá
RUN curl -sL https://deb.nodesource.com/setup_9.x > setup_9.x
&& echo "958c9a95c4974c918dca773edf6d18b1d1a41434 setup_9.x" | sha1sum -c -
&& bash setup_9.x
&& rm -rf setup_9.x
&& apt-get -y install libpq-dev imagemagick gsfonts nodejs
&& gem install bundler
&& bundle install --without development test --path vendor/bundle
&& rm -rf /usr/local/bundle/cache/*.gem
&& apt-get clean
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* checksum ááᯠáĄááŻáśá¸ááźáŻá áááşáááş áážááşáááşááąáŹáááŻááşááᯠááąáŤááşá¸ááŻááşááŻááşááŹá¸ááźáąáŹááşá¸ áĄáááşááźáŻáááŻááşáááşá
P: ááŤááąáááˇáş áááŻááşááźáąáŹááşá¸áááş build ááťááşáá˝áŹá¸ááááˇáşáááşá
AI: ááŻááşáááşá áá°á¸áááşá¸ááŹáá ááŤá áĄááąáŤááşá¸áá áşááŻáááşá¸ááźá áşáááşá áááŻááşááźáąáŹááşá¸áá˝áŹá¸áááşááᯠáááşáááááşááźá áşááźáŽá¸ áááŻááąááŹáá˝ááş ááźáąáŹááşá¸áá˛ááŹá¸áááşááᯠáááşáá˝áąáˇááźááşáááŻááşáááşááźá áşáááşá áááşáááşááąáŹáˇáážááááááŻááşá áá°áááŻáˇááąáŹááşáážááááŻááşáá˛áˇ áĄááŹáĄáŹá¸ááŻáśá¸ááᯠááťááşáá áşáá˛áˇ ááŹááşáá˝ážááşá¸áá áşáᯠááŤáážáááŻááş ááąáŹááşááśááśááŤá¸ááᯠáááşááŽá¸ááąá¸áááşáááŻáˇ áááşáááşááąáŹáˇááž áááźáąáŹááźááŤáá°á¸á
P: ááťáąá¸áá°á¸áááşááŤáááşá ááąáŹááşááŻáśá¸ Dockerfile áááş á¤áá˛áˇáááŻáˇ ááźá áşááąáááş ááźá áşáááş á
FROM ruby:2.5.5-stretch
WORKDIR /app
COPY Gemfile* /app
RUN curl -sL https://deb.nodesource.com/setup_9.x > setup_9.x
&& echo "958c9a95c4974c918dca773edf6d18b1d1a41434 setup_9.x" | sha1sum -c -
&& bash setup_9.x
&& rm -rf setup_9.x
&& apt-get -y install libpq-dev imagemagick gsfonts nodejs
&& gem install bundler
&& bundle install --without development test --path vendor/bundle
&& rm -rf /usr/local/bundle/cache/*.gem
&& apt-get clean
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY . /app
RUN rake assets:precompile
CMD ["bundleâ, âexecâ, âpassengerâ, âstart"]P: Igor Ivanovichá áááşá¸áá˛áˇáĄáá°áĄááŽáĄáá˝ááş ááťáąá¸áá°á¸áááşááŤáááşá ááŤááźáąá¸áááŻáˇáĄááťáááşááąáŹááşááźáŽá ááŤááŽááąáˇ 10 ááźáááşáááşááŻááşááááşá
Igor Ivanovich áááş áá°áˇááŻááşááąáŹáşáááŻááşáááşááᯠáĄááťááşá áááŻááąá¸ááźááˇáşáááşá¸ áááşáááŻááşááźáŽá¸ ááąáŹáşááŽááźááşá¸ááźááşá¸ááąá¸áááŻáśááąáŹááşáááŻááşáááşá 99.9% SLA áážááˇáş bug-free ááŻááşáĄááźáąáŹááşá¸ á áášáááˇáşáĄáááşá¸áááşááźáŹ á ááşá¸á áŹá¸ááźáŽá¸ááąáŹááşá áá°á ááąá¸áá˝ááşá¸áá áşááŻááąá¸áááşá
AI: áážááşáááşá¸áá˝áąááᯠáááşáážáŹ ááááşá¸ááŹá¸áá˛á
P: ááŻááşááŤáááşá production.log áážáŹá á ááŹá¸áá ááşá ááŻááşáááşá áááŻáˇááąáŹáş ssh áááŤáᲠáááşá¸áááŻáˇááᯠáááşáááŻáˇáááşááąáŹááşáááŻááşáááşáááşá¸á
AI- áááşá¸áááŻáˇááᯠáááŻááşááťáŹá¸áá˝ááş ááŹá¸áá˛áˇááŤáá áááˇáşáĄáá˝ááş ááźáąáážááşá¸ááťááşáá áşáᯠááŽáá˝ááşááŹá¸ááźáŽá¸ááźá áşáááşá docker exec command áááş áááˇáşáĄáŹá¸ container áá áşááŻáá˝ááş áááşáááˇáş command áááŻáááᯠááŻááşááąáŹááşáááş áá˝ááˇáşááźáŻáááşá áĽáááŹáĄáŹá¸ááźááˇáşá áááşáááş ááźáąáŹááşááᯠáá áşááŻáśá¸ááźáŻááŻááşáááŻááşáááşá ááźáŽá¸ááąáŹáˇ ááąáŹáˇáááŻááŻáśá¸áááşá -áĄá˛á፠áážááˇáş run ááąááąáŹ bash (áá˝ááşááááşááŹáá˝ááşáááˇáşáá˝ááşá¸ááŤá) áááşáááˇáşáĄáŹá¸áá˝ááşááááşááŹáááŻáˇáĄááźááşáĄáážááşáááşááąáŹááşáá˝ááˇáşááąá¸ááááˇáşáááşá
ááŤááąáááˇáş áážááşáááşá¸áááŻááşáá˝áąááᯠááááşá¸áááşá¸áááŹá¸áááˇáşááŤáá°á¸á áĄáááşá¸ááŻáśá¸áĄáŹá¸ááźááˇáşá áááşá¸áááş áá˝ááşááááşááŹá áĄááááşá¸áĄáá˝ááşáá˛áˇ ááźáŽá¸áá˝áŹá¸áážáŻááᯠááźá áşá áąááźáŽá¸ áá áşááŻáśá¸ááťáŹá¸ááᯠáááşáá°ááťáž áážááˇáşáááźááˇáşááŤá áážááşáááşá¸ááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠstdout áááŻáˇááąá¸áááŻáˇáááˇáşáááşá áĄá˛ááŽáážáŹáá°áááŻáˇááᯠcommand áááŻááŻáśá¸ááźáŽá¸ááźááˇáşáážáŻáááŻááşááŤáááşá docker áážááşáááşá¸ááťáŹá¸.
P: Igor Ivanovichá áážááşáááşá¸ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáá°ááąááŹáĄááźá áş Physical Node ááąáŤáşáá˝ááş áááşáááşááŹá¸ááąáŹ áááşá¸áá˝ážááşáá áşááŻáá˝ááş áááˇáşáá˝ááşá¸áááŻááşáááşááźá áşáááşá
AI- node ááá
áşááąáŤáşáá˝ááş áááşááŹá¸ááąáŹááąááŹááᯠáááşáážáŹá¸áááş áááşáááąáˇáá˛áˇááŤá ááąáŹááşá¸ááŤáááşá áááşá¸ááᯠáážááşáááşá¸ááťáŹá¸ááźááˇáşáááşá¸ ááŻááşááąáŹááşáááŻááşáááşá áážááˇáşááźááşá¸ááᯠáááşáážááşáááş áááąáˇááŤáážááˇáşá
ááŤáᲠááźáąá¸áááŻáˇááááşá
P: Igor Ivanovichá ááŹáááşáááᲠáĄááźáśááąá¸áááŻááşáááŹá¸á
AI : ááááŚá¸á á˝áŹáááşááŤá Docker ááᯠáá°áááŻáˇáááş áááŻáááᏠáááşáá°ááž ááážááááąáŹááşááŤáá˛á
Internship áááŻááťááşáááşá áá˝áŹá¸áááŻááşááŤá . ááááşááąáŹáˇ áááşáá˝áąáˇáááŤáá˛áˇ ááŽáĄááŻááŽá ááąáá˝áŹá¸ááźáŽá
source: www.habr.com
