แƒ“แƒแƒ™แƒ”แƒ แƒ˜: แƒชแƒฃแƒ“แƒ˜ แƒ แƒฉแƒ”แƒ•แƒ

แƒ“แƒแƒ™แƒ”แƒ แƒ˜: แƒชแƒฃแƒ“แƒ˜ แƒ แƒฉแƒ”แƒ•แƒ

แƒ แƒแƒชแƒ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒก แƒ•แƒกแƒฌแƒแƒ•แƒšแƒแƒ‘แƒ“แƒ˜, แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜แƒ•แƒ” แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ–แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒขแƒแƒ แƒ˜ แƒ™แƒ•แƒ”แƒ—แƒแƒ–แƒ” แƒฃแƒ™แƒฃแƒกแƒ•แƒšแƒ˜แƒ— แƒจแƒ”แƒ•แƒ˜แƒ“แƒ แƒ“แƒ แƒ›แƒ”แƒ แƒ” แƒ—แƒฅแƒ•แƒ, แƒ แƒแƒ› แƒแƒกแƒ” แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ - แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ แƒแƒกแƒ“แƒ แƒแƒก. แƒ”แƒก แƒฌแƒ”แƒกแƒ˜ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ“แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒซแƒ˜แƒšแƒ–แƒ” แƒ’แƒแƒ›แƒแƒฎแƒกแƒ”แƒœแƒ“แƒ.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒ— แƒ‘แƒแƒ•แƒจแƒ•แƒ”แƒ‘แƒก แƒ’แƒ แƒ˜แƒ’แƒแƒ แƒ˜ แƒแƒกแƒขแƒ”แƒ แƒ˜แƒก โ€žแƒชแƒฃแƒ“ แƒ แƒฉแƒ”แƒ•แƒ”แƒ‘แƒกโ€œ แƒ“แƒ แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ แƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒ“แƒ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒฎแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒแƒœ แƒ›แƒแƒ—, แƒ แƒแƒ› แƒ”แƒก แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒœ.

แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— Dockerfile แƒกแƒฌแƒแƒ แƒแƒ“. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒแƒ  แƒฌแƒแƒ•แƒแƒฌแƒงแƒ“แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒแƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ Dockerfiles. แƒ›แƒ” แƒ•แƒแƒ•แƒกแƒ”แƒ‘ แƒแƒ› แƒฎแƒแƒ แƒ•แƒ”แƒ–แƒก. แƒ“แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒ˜แƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ›แƒ” แƒ•แƒ˜แƒฆแƒ”แƒ‘ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒแƒก, แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ“แƒแƒ™แƒ”แƒ แƒคแƒแƒ˜แƒšแƒ˜.

แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒŸแƒ˜, แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ แƒ“แƒ Dockerfile แƒแƒ แƒ˜แƒก แƒคแƒ˜แƒฅแƒขแƒ˜แƒฃแƒ แƒ˜. แƒ—แƒฃ แƒ˜แƒชแƒœแƒแƒ‘ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒ—แƒแƒ•แƒก, แƒ‘แƒแƒ“แƒ˜แƒจแƒ˜.

Dockerfile-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ, แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ แƒ“แƒ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜

แƒžแƒ˜แƒขแƒ”แƒ แƒ˜ (แƒฃแƒคแƒ แƒแƒกแƒ˜ java/rubby/php แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜): แƒ™แƒแƒšแƒ”แƒ’แƒ แƒ•แƒแƒกแƒ˜แƒšแƒ˜, แƒฃแƒ™แƒ•แƒ” แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ— แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜ Docker-แƒจแƒ˜?
แƒ•แƒแƒกแƒ˜แƒšแƒ˜ (แƒฃแƒ›แƒชแƒ แƒแƒกแƒ˜): แƒแƒ แƒ, แƒ“แƒ แƒ แƒแƒ  แƒ›แƒฅแƒแƒœแƒ“แƒ, แƒแƒ› แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒ— แƒ•แƒ”แƒ  แƒ’แƒแƒ•แƒ”แƒ แƒ™แƒ•แƒ”แƒ•แƒ˜. แƒ›แƒแƒกแƒ–แƒ” แƒ˜แƒ›แƒ“แƒ”แƒœแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒแƒ, แƒ—แƒแƒ•แƒ‘แƒ แƒฃแƒ“แƒแƒ›แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ.

แƒžแƒ˜แƒขแƒ”แƒ แƒ˜: แƒ”แƒ แƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ แƒ’แƒ•แƒฅแƒแƒœแƒ“แƒ แƒ•แƒแƒ“แƒ. แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒ”แƒชแƒ˜แƒ— แƒ“แƒแƒ’แƒ”แƒฎแƒ›แƒแƒ แƒแƒ—, แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜. แƒ›แƒ˜แƒ—แƒฎแƒแƒ แƒ˜ แƒ แƒ แƒแƒ  แƒ’แƒแƒ›แƒแƒ’แƒ“แƒ˜แƒก.

แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒ›แƒ” แƒแƒ  แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ˜แƒก แƒ˜แƒงแƒแƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—.
แƒžแƒ˜แƒขแƒ”แƒ แƒ˜: แƒแƒ˜แƒฆแƒ”แƒ— ubuntu-แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜, แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜, แƒ แƒแƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—. แƒ“แƒ แƒ แƒแƒช แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒแƒ แƒแƒกแƒแƒญแƒ˜แƒ แƒแƒ, แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ’แƒแƒ“แƒ’แƒ”แƒ‘แƒแƒ—. แƒ“แƒ แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒขแƒ”แƒ’แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ˜แƒงแƒแƒก.

แƒ“แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒฎแƒแƒ–แƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ Dockerfile-แƒจแƒ˜:

FROM ubuntu:latest

แƒžแƒ˜แƒขแƒ”แƒ แƒ˜: แƒ แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒ แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“?
แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒ›แƒแƒจ, แƒ แƒฃแƒ‘แƒ˜, แƒแƒ แƒ˜แƒก แƒ•แƒ”แƒ‘ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ“แƒ”แƒ›แƒแƒœแƒ˜ แƒฃแƒœแƒ“แƒ แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ”แƒก.
แƒžแƒ˜แƒขแƒ”แƒ แƒ˜: แƒ“แƒ˜แƒแƒฎ, แƒ แƒ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ: แƒ แƒฃแƒ‘แƒ˜, แƒ‘แƒแƒœแƒ“แƒšแƒ”แƒ แƒ˜, nodejs, imagemagick แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ แƒ... แƒ“แƒ แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒแƒฎแƒแƒšแƒ˜ แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜.
แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒแƒ  แƒ•แƒ˜แƒงแƒแƒ— root?
แƒžแƒ”แƒขแƒ แƒ”: แƒฏแƒแƒœแƒ“แƒแƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒ›แƒแƒ˜แƒœแƒช แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒก แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒญแƒ™แƒฃแƒแƒ–แƒ”.
แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒ“แƒ แƒ แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 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/*

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒ’แƒแƒ  แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜แƒฉแƒ˜, DevOps (แƒ›แƒแƒ’แƒ แƒแƒ› แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜ Ops แƒ•แƒ˜แƒ“แƒ แƒ” Dev), แƒจแƒ”แƒ›แƒแƒ˜แƒญแƒ แƒ”แƒ‘แƒ แƒแƒคแƒ˜แƒกแƒจแƒ˜ แƒ“แƒ แƒงแƒ•แƒ˜แƒ แƒ˜แƒก:

AI: แƒžแƒ”แƒขแƒ˜แƒ, แƒ—แƒฅแƒ•แƒ”แƒœแƒ›แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒ™แƒ•แƒšแƒแƒ• แƒ“แƒแƒแƒ แƒฆแƒ•แƒ˜แƒ”แƒก แƒกแƒแƒ™แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒ แƒแƒ“แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ”แƒ‘แƒ แƒ”แƒก...

แƒ›แƒชแƒ˜แƒ แƒ” แƒจแƒ”แƒขแƒแƒ™แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ˜แƒ’แƒแƒ  แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜แƒฉแƒ˜ แƒ’แƒแƒชแƒ˜แƒ•แƒ“แƒ แƒ“แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒก, แƒ—แƒฃ แƒ แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒœ แƒแƒฅ แƒ›แƒ˜แƒกแƒ˜ แƒ™แƒแƒšแƒ”แƒ’แƒ”แƒ‘แƒ˜.

แƒแƒ˜: แƒ แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘?
แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒžแƒ˜แƒขแƒ”แƒ แƒ˜ แƒ›แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก Dockerfile-แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒจแƒ˜.
AI: แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ›แƒ”แƒชแƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒ... แƒ แƒ แƒ“แƒแƒฌแƒ”แƒ แƒ” แƒแƒฅ, แƒแƒกแƒฃแƒคแƒ—แƒแƒ•แƒ”แƒ‘ แƒกแƒแƒชแƒแƒ•แƒก แƒชแƒแƒšแƒ™แƒ” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ แƒคแƒ”แƒœแƒ... แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ—แƒฃ Gemfile แƒแƒ  แƒ’แƒแƒฅแƒ•แƒ— แƒ“แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜! แƒ“แƒ แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒแƒ แƒ’แƒ˜.
แƒžแƒ˜แƒขแƒ”แƒ แƒ˜: แƒ’แƒ—แƒฎแƒแƒ•, แƒฌแƒแƒ“แƒ˜ แƒจแƒ”แƒœแƒก แƒกแƒแƒฅแƒ›แƒ”แƒ–แƒ”, แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒ แƒแƒ’แƒแƒ แƒ›แƒ” แƒ’แƒแƒ•แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒ—.

แƒ˜แƒ’แƒแƒ  แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜แƒฉแƒ˜ แƒกแƒ”แƒ•แƒ“แƒ˜แƒแƒœแƒแƒ“ แƒแƒ›แƒแƒ˜แƒกแƒฃแƒœแƒ—แƒฅแƒแƒ•แƒก แƒ“แƒ แƒ›แƒ˜แƒ“แƒ˜แƒก แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“, แƒ—แƒฃ แƒ•แƒ˜แƒœ แƒ“แƒแƒแƒ แƒฆแƒ•แƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ.

แƒžแƒ˜แƒขแƒ”แƒ แƒ˜: แƒ“แƒ˜แƒแƒฎ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜ แƒ˜แƒงแƒ แƒ™แƒแƒ“แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒจแƒ˜. แƒ“แƒ แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ“แƒแƒ•แƒแƒงแƒ”แƒœแƒแƒ— ssh แƒ“แƒ supervisor, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ“แƒ”แƒ›แƒแƒœแƒ”แƒ‘แƒก.

แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฏแƒ”แƒ  แƒ“แƒแƒ•แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘ 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/* 

แƒžแƒ”แƒขแƒ แƒ”: แƒ›แƒ”แƒ แƒ” แƒ แƒ? แƒ–แƒ”แƒ“แƒแƒ›แƒฎแƒ”แƒ“แƒ•แƒ”แƒšแƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒ’แƒแƒฅแƒ•แƒ—?
แƒ•แƒแƒกแƒ˜แƒšแƒ˜: แƒแƒ แƒ, แƒแƒ แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒแƒ›แƒแƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘.
แƒžแƒ”แƒขแƒ แƒ”: แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ›แƒแƒก แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ‘. แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒ•แƒกแƒแƒฎแƒแƒ— init แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ’แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒก. แƒ™แƒแƒ แƒ’แƒ˜, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— ssh-แƒก, nohup-แƒ˜แƒ—, แƒ แƒแƒ—แƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ— แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒ“แƒ แƒ•แƒœแƒแƒฎแƒแƒ—, แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒแƒฌแƒแƒ แƒ›แƒแƒ” แƒ–แƒ”แƒ“แƒแƒ›แƒฎแƒ”แƒ“แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒ›แƒแƒ•แƒ” แƒ’แƒ–แƒ˜แƒ—. แƒ˜แƒกแƒ”, แƒ›แƒแƒจแƒ˜แƒœ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒ— แƒ›แƒ’แƒ–แƒแƒ•แƒ แƒก.
แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: แƒ›แƒแƒ’แƒ แƒแƒ› แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”, แƒ แƒแƒ› แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ“แƒแƒ™แƒ”แƒ แƒ›แƒ แƒ’แƒแƒ˜แƒ’แƒแƒก, แƒ แƒแƒ› แƒ แƒแƒฆแƒแƒช แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ”แƒ“ แƒ›แƒแƒฎแƒ“แƒ แƒ“แƒ แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒก.
แƒž: แƒกแƒ˜แƒกแƒฃแƒšแƒ”แƒšแƒ”แƒ”แƒ‘แƒ˜แƒ— แƒœแƒฃ แƒจแƒ”แƒแƒฌแƒฃแƒฎแƒ”แƒ‘แƒ— แƒ—แƒแƒ•แƒก. แƒ“แƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒ แƒแƒ’แƒแƒ ? แƒ แƒแƒ’แƒแƒ  แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ”แƒ แƒ— แƒžแƒ แƒแƒชแƒ”แƒกแƒจแƒ˜? แƒ“แƒแƒ”, แƒ˜แƒ’แƒแƒ  แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜แƒฉแƒ›แƒ แƒ˜แƒคแƒ˜แƒฅแƒ แƒแƒก แƒกแƒขแƒแƒ‘แƒ˜แƒšแƒฃแƒ แƒแƒ‘แƒแƒ–แƒ”, แƒขแƒงแƒฃแƒ˜แƒšแƒแƒ“ แƒแƒ  แƒ˜แƒฆแƒ”แƒ‘แƒก แƒฎแƒ”แƒšแƒคแƒแƒกแƒก. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒฅแƒ›แƒ”แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ. แƒ“แƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“, แƒ“แƒแƒ”, แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒ—แƒฅแƒ•แƒแƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ”แƒ— Dockfile แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

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โ€]

P: แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ”แƒ แƒ˜แƒ, แƒ›แƒแƒ›แƒฌแƒแƒœแƒก. แƒ“แƒ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒ แƒฃแƒกแƒฃแƒš แƒ”แƒœแƒแƒ–แƒ”แƒ, แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒ แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ, แƒงแƒ•แƒ”แƒšแƒ แƒแƒกแƒ” แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒกแƒฌแƒแƒ•แƒšแƒ”, แƒ“แƒแƒœแƒแƒ แƒฉแƒ”แƒœแƒ˜ แƒจแƒ”แƒœ แƒ—แƒ•แƒ˜แƒ—แƒแƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒ. แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ— แƒงแƒแƒ•แƒ แƒ“แƒแƒ•แƒšแƒ˜แƒแƒ—...

แƒฐแƒแƒ“แƒ, แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜ Dockerfile, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ“แƒแƒœแƒแƒฎแƒ•แƒแƒช แƒ˜แƒ’แƒแƒ  แƒ˜แƒ•แƒแƒœแƒแƒ•แƒ˜แƒฉแƒก แƒ’แƒแƒฃแƒฉแƒ”แƒœแƒก แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒขแƒแƒ•แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒ—แƒ•แƒแƒšแƒ”แƒ‘แƒ˜ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ แƒแƒขแƒ™แƒ˜แƒœแƒ”แƒ‘แƒ. Dockerfile, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒฃแƒแƒ แƒ”แƒกแƒ˜ แƒ˜แƒงแƒแƒก, แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ แƒแƒ  แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒ’แƒแƒ›แƒแƒ“แƒ’แƒ”แƒ‘แƒ.

แƒ›แƒ˜แƒœแƒ“แƒ แƒ“แƒแƒ•แƒแƒกแƒ แƒฃแƒšแƒ แƒ’แƒ แƒ˜แƒ’แƒแƒ แƒ˜ แƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒชแƒ˜แƒขแƒแƒขแƒ˜แƒ—:

แƒ—แƒฃ แƒฏแƒ”แƒ  แƒแƒ  แƒฎแƒแƒ แƒ— แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜
แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒ’แƒ–แƒ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒจแƒ˜,
แƒ“แƒ แƒแƒ  แƒ˜แƒชแƒ˜ แƒ แƒแƒขแƒแƒ›
แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒจแƒ แƒแƒ›แƒ˜แƒ—แƒ˜ แƒ›แƒแƒ’แƒ–แƒแƒฃแƒ แƒแƒ‘แƒ,
แƒ’แƒแƒขแƒ”แƒฎแƒ”แƒ— แƒœแƒแƒ—แƒฃแƒ แƒ”แƒ‘แƒ˜ แƒ“แƒ”แƒ แƒ”แƒคแƒœแƒ”แƒ‘แƒจแƒ˜ -
แƒฎแƒแƒšแƒฎแƒ˜ แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒก "แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ".
แƒ—แƒฅแƒ•แƒ”แƒœ แƒ“แƒแƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒฎแƒแƒšแƒฎแƒก
แƒ“แƒแƒ–แƒแƒ’แƒ”แƒ— แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒ”แƒœแƒ”แƒ แƒ’แƒ˜แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ