Docker: droch chomhairle

Docker: droch chomhairle

Nuair a bha mi ag ionnsachadh càr a dhràibheadh, aig a 'chiad leasan chaidh an neach-teagaisg a-steach don eadar-ghearradh air ais, agus an uairsin thuirt e nach bu chòir dhut sin a dhèanamh - cha robh e idir idir. Chuimhnich mi air an riaghailt seo sa bhad agus airson a’ chòrr de mo bheatha.

Bidh thu a’ leughadh “Droch Chomhairle” le Grigory Oster do chloinn, agus chì thu cho furasta agus cho nàdarrach ’s a tha e a’ dannsadh orra nach bu chòir dhaibh seo a dhèanamh.

Chaidh tòrr artaigilean a sgrìobhadh air mar a sgrìobhas tu Dockerfile gu ceart. Ach cha tàinig mi tarsainn air stiùireadh air mar a sgrìobhas tu Dockerfiles ceàrr. Tha mi a’ lìonadh a’ bheàrn seo. Agus is dòcha anns na pròiseactan a gheibh mi taic, gum bi nas lugha de fhaidhlichean docker mar sin.

Tha a h-uile caractar, suidheachadh agus Dockerfile meallta. Ma tha thu gad aithneachadh fhèin, duilich.

A’ cruthachadh Dockerfile, ominous agus uamhasach

Pàdraig (Àrd leasaiche java/rubby/php): Co-obraiche Vasily, a bheil thu air modal ùr a luchdachadh suas gu Docker mu thràth?
Vasily (òg): Chan e, cha robh ùine agam, chan urrainn dhomh obrachadh a-mach leis an Docker seo. Tha uimhir de artaigilean air, tha e dòrainneach.

Pàdraig: Bha ceann-latha againn bliadhna air ais. Leig leam do chuideachadh, nì sinn a-mach e sa phròiseas. Inns dhomh dè nach eil ag obair dhut.

Vasily: Chan urrainn dhomh ìomhaigh bunaiteach a thaghadh gus nach bi e cho beag, ach tha a h-uile dad a dh ’fheumas tu.
Pàdraig: Gabh an dealbh ubuntu, tha a h-uile dad a dh 'fheumas tu ann. Agus an rud a th’ ann an tòrr rudan neo-riatanach thig e gu feum nas fhaide air adhart. Agus na dìochuimhnich an taga as ùire a chuir gus am bi an dreach an-còmhnaidh as ùire.

Agus tha a’ chiad loidhne a’ nochdadh anns an Dockerfile:

FROM ubuntu:latest

Peadar: Dè an ath rud, dè a chleachd sinn airson ar modal a sgrìobhadh?
Vasily: Mar sin ruby, tha frithealaiche lìn ann agus bu chòir dà dheamhan seirbheis a chuir air bhog.
Pàdraig: Seadh, dè a dh'fheumas sinn: ruby, bundler, nodejs, imagemagick agus dè eile... Agus aig an aon àm, dèan ùrachadh gus pasganan ùra fhaighinn gu cinnteach.
Vasily: Agus nach cruthaich sinn cleachdaiche gus nach bi sinn fo fhreumh?
Pàdraig: Fuck e, feumaidh tu fhathast amadan a dhèanamh leis na còraichean.
Vasily: Feumaidh mi ùine, timcheall air 15 mionaidean, airson a h-uile càil a chuir ri chèile ann an aon àithne, leugh mi sin ...
(Tha Peadar gu mì-mhodhail a’ briseadh a-steach don òganach a tha gu math sgiobalta agus gu math sgiobalta.)
Peadar: Sgrìobh ann an àitheantan fa leth, bidh e nas fhasa a leughadh.

Bidh Dockerfile a’ fàs:

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

An uairsin bidh Igor Ivanovich, DevOps (ach barrachd Ops na Dev), a ’spreadhadh a-steach don oifis ag èigheachd:

AI: Bhris Petya, an luchd-leasachaidh agad an stòr-dàta bìdh a-rithist, cuin a thig seo gu crìch ...

Às deidh sgeir bheag, bidh Igor Ivanovich a 'fuarachadh sìos agus a' tòiseachadh a 'faighinn a-mach dè a tha a cho-obraichean a' dèanamh an seo.

AI: Dè tha thu a' dèanamh?
Vasily: Tha Peadar gam chuideachadh le bhith a’ cruthachadh Dockerfile airson modal ùr.
AI: Thoir dhomh sùil... Dè a sgrìobh thu an seo, bidh thu a’ glanadh an stòr le àithne air leth, is e sreath a bharrachd a tha seo... Ach ciamar a stàlaicheas tu eisimeileachd mura h-eil thu air leth-bhreac a dhèanamh den Gemfile! Agus san fharsaingeachd, chan eil seo math.
Pàdraig: Feuch an dèan thu do ghnìomhachas, nì sinn a-mach dòigh air choireigin.

Tha Igor Ivanovich ag osnaich gu brònach agus a 'fàgail gus faighinn a-mach cò bhris an stòr-dàta.

Pàdraig: Bha, ach bha e ceart mun chòd, feumaidh sinn a phutadh a-steach don ìomhaigh. Agus stàlaichidh sinn ssh agus neach-stiùiridh sa bhad, air neo tòisichidh sinn air na daemons.

Vasily: An uairsin nì mi leth-bhreac den Gemfile agus Gemfile.lock an toiseach, an uairsin stàlaidhidh mi a h-uile càil, agus an uairsin nì mi lethbhreac den phròiseact gu lèir. Mura atharraich an Gemfile, thèid an còmhdach a thoirt bhon tasgadan.
Pàdraig: Carson a tha thu uile leis na sreathan seo, dèan lethbhreac de na h-uile aig an aon àm. Dèan lethbhreac sa bhad. A 'chiad loidhne.

Tha an Dockerfile a-nis a’ coimhead mar seo:

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

Peadar: Mar sin, dè an ath rud? A bheil rèiteachaidhean agad airson an neach-stiùiridh?
Vasily: Chan eil, chan eil. Ach nì mi e gu sgiobalta.
Peadar: Mar sin nì thu e. Leig dhuinn a-nis sgeidse a-mach sgriobt init a chuireas air bhog a h-uile càil. Ceart gu leòr, mar sin tòisichidh tu ssh, le nohup, gus an urrainn dhuinn ceangal ris an t-soitheach agus faicinn dè chaidh ceàrr. An uairsin ruith an neach-stiùiridh san aon dòigh. Uill, an uairsin bidh thu dìreach a 'ruith luchd-siubhail.
C: Ach leugh mi gum bu chòir aon phròiseas a bhith ann, agus mar sin bidh fios aig Docker gun deach rudeigin ceàrr agus gun urrainn dha an soitheach ath-thòiseachadh.
P: Na cuir dragh air do cheann le neòinean. Agus san fharsaingeachd, ciamar? Ciamar a ruitheas tu seo uile ann an aon phròiseas? Leig le Igor Ivanovich smaoineachadh air seasmhachd, chan ann airson rud sam bith a gheibh e tuarastal. Is e an obair againn còd a sgrìobhadh. Agus san fharsaingeachd, leig leis taing a thoirt dhut gun do sgrìobh sinn an Dockefile air a shon.

10 mionaidean agus dà bhidio mu chait às deidh sin.

C: Tha mi air a h-uile càil a dhèanamh. Chuir mi barrachd bheachdan ris.
P: Seall dhomh!

An tionndadh as ùire de 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: Sgoinneil, is toil leam e. Agus tha na beachdan ann an Ruisis, goireasach agus furasta a leughadh, bhiodh a h-uile duine ag obair mar sin. Dh'ionnsaich mi a h-uile dad dhut, faodaidh tu an còrr a dhèanamh thu fhèin. Rachamaid beagan cofaidh...

Uill, a-nis tha Dockerfile gu math uamhasach againn, agus bheir an sealladh sin air Igor Ivanovich a bhith ag iarraidh a dhreuchd a leigeil dheth agus bidh a shùilean air an goirteachadh airson seachdain eile. Dh ’fhaodadh an Dockerfile, gu dearbh, a bhith eadhon nas miosa, chan eil crìoch air foirfeachd. Ach airson tòiseachadh, nì seo.

Bu mhath leam crìoch a chuir air le cuòt bho Grigory Oster:

Mura h-eil thu cinnteach fhathast
Thagh sinn an t-slighe nar beatha,
Agus chan eil fios agad carson
Tòisich do thuras obrach,
Dèan briseadh air na bulbaichean solais anns na trannsaichean -
Canaidh daoine “Tapadh leibh” ribh.
Cuidichidh tu na daoine
Sàbhail dealan.

Source: www.habr.com

Cuir beachd ann