แ แแชแ แแแแฅแแแแก แแแ แแแแก แแกแฌแแแแแแแ, แแแ แแแแแแ แแแแแแแแแแ แแแกแขแ แฃแฅแขแแ แ แแแแแแแ แฃแแฃแกแแแแ แจแแแแแ แแ แแแ แ แแฅแแ, แ แแ แแกแ แแ แฃแแแ แแแแแแแ - แกแแแ แแแ แแ แแกแแ แแก. แแก แฌแแกแ แแแจแแแแ แแ แแแแแ แชแฎแแแ แแแแก แแแแซแแแแ แแแแแฎแกแแแแ.
แแฅแแแ แแแแฎแฃแแแแ แแแแจแแแแก แแ แแแแ แ แแกแขแแ แแก โแชแฃแ แ แฉแแแแแกโ แแ แฎแแแแแ, แ แ แแแ แขแแแแ แแ แแฃแแแแ แแแแ แฎแแแแแแแ แแแ, แ แแ แแก แแ แฃแแแ แแแแแแแแ.
แแแแ แ แกแขแแขแแ แแแแฌแแ แ แแแแก แจแแกแแฎแแ, แแฃ แ แแแแ แฃแแแ แแแฌแแ แแ 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