Docker: likeletso tse mpe

Docker: likeletso tse mpe

Ha ke ntse ke ithuta ho khanna koloi, thutong ea pele feela morupeli o ile a kena mateanong a litsela ka morao, eaba o re ha ua lokela ho etsa joalo - le ka mohla ho hang. Ke ile ka hopola molao ona hang-hang le bophelo bohle ba ka.

U bala "Keletso e Mobe" ea Grigory Oster ho bana, 'me u bona kamoo ho leng bonolo le ka tlhaho ho bona hore ha baa lokela ho etsa sena.

Ho ngotsoe lingoliloeng tse ngata mabapi le mokhoa oa ho ngola Dockerfile ka nepo. Empa ha kea fumana litaelo tsa ho ngola li-Dockerfiles tse fosahetseng. Ke tlatsa sekheo sena. Mme mohlomong mererong eo ke e fumanang tšehetso, ho tla ba le li-dockerfiles tse joalo tse fokolang.

Litlhaku tsohle, maemo le Dockerfile ke mashano. Haeba u itseba, masoabi.

Ho theha Dockerfile, e tšosang ebile e tšabeha

Peter (Moqapi ea phahameng oa java/rubby/php): Mosebetsi-'moho le Vasily, na u se u kentse mojule o mocha ho Docker?
Vasily (e monyenyane): Che, ke ne ke se na nako, ha ke khone ho e utloisisa ka Docker ena. Ho na le lingoloa tse ngata ho eona, e ea tšosa.

Peter: Re bile le nako ea ho qetela selemong se fetileng. E re ke u thuse, re tla e utloisisa ha re ntse re tsoela pele. Mpolelle hore na ke eng e sa u sebetseng.

Vasily: Ha ke khone ho khetha setšoantšo sa motheo e le hore se be se fokolang, empa se na le ntho e 'ngoe le e' ngoe eo ue hlokang.
Peter: Nka setšoantšo sa ubuntu, se na le sohle seo u se hlokang. 'Me lintho tse ngata tse sa hlokahaleng li tla thusa hamorao. Hape u se ke ua lebala ho beha tag ea morao-rao e le hore phetolelo e lule e le ea morao-rao.

'Me mola oa pele o hlaha ho Dockerfile:

FROM ubuntu:latest

Peter: Ho latela eng, re sebelisitse eng ho ngola mojule oa rona?
Vasily: Kahoo ruby, ho na le seva sa marang-rang mme li-daemone tse 'maloa tsa litšebeletso li lokela ho hlahisoa.
Peter: E, re hloka eng: ruby, bundler, nodejs, imagemagick le eng hape ... 'Me ka nako e ts'oanang, etsa ntlafatso ho netefatsa hore u fumane liphutheloana tse ncha.
Vasily: 'Me re ke ke ra theha mosebelisi e le hore re se ke ra ba tlas'a motso?
Peter: Fuck it, joale u ntse u tlameha ho ithetsa ka litokelo.
Vasily: Ke hloka nako, e ka bang metsotso e 15, ho e kopanya kaofela ka taelo e le 'ngoe, ke bala hore ...
(Petrose o sitisa ngoana ea hlokolosi le ea bohlale haholo.)
Peter: Ngola ka litaelo tse fapaneng, ho tla ba bonolo ho bala.

Dockerfile e ntse e hola:

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

Joale Igor Ivanovich, DevOps (empa Ops ho feta Dev), o ile a phatloha ka ofising a hoeletsa:

AI: Petya, bahlahisi ba hau ba boetse ba robehile polokelo ea lijo, see se tla fela neng...

Ka mor'a ntoa e nyenyane, Igor Ivanovich oa pholile 'me o qala ho fumana hore na basebetsi-'moho le eena ba etsa eng mona.

AI: O etsang?
Vasily: Peter o nthusa ho theha Dockerfile bakeng sa mojule o mocha.
AI: E-re ke shebe ... U ngotse eng mona, u hloekisa polokelo ka taelo e fapaneng, ena ke lera le eketsehileng ... Empa u kenya litšepe joang haeba u sa kopitsa Gemfile! 'Me ka kakaretso, sena ha se molemo.
Peter: Ka kopo, tsoela pele ka khoebo ea hau, re tla e utloisisa ka tsela e itseng.

Igor Ivanovich o feheloa ka masoabi mme o tloha ho fumana hore na ke mang ea robehileng database.

Peter: E, empa o ne a nepile ka khoutu, re hloka ho e sutumelletsa setšoantšong. 'Me hang-hang re kenye ssh le mookameli, ho seng joalo re tla qala li-daemone.

Vasily: Joale ke tla qala ho kopitsa Gemfile le Gemfile.lock, ebe ke kenya ntho e 'ngoe le e' ngoe, ebe ke tla kopitsa morero oohle. Haeba Gemfile e sa fetohe, lera le tla tlosoa ho cache.
Peter: Ke hobane'ng ha le na le lihlopha tsena, kopitsa ntho e 'ngoe le e' ngoe hang-hang. Kopitsa hang-hang. Mola oa pele haholo.

Hona joale Dockerfile e shebahala tjena:

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

Peter: Joale, ho latela eng? O na le litlhophiso tsa mookameli?
Vasily: Che, che. Empa ke tla e etsa kapele.
Peter: Joale u tla e etsa. Ha re ke re rale mongolo oa init o tla tsebisa tsohle. Ho lokile, kahoo o qala ssh, ka nohup, e le hore re ka hokela setshelo mme re bone hore na ho senyehile eng. Ebe u tsamaisa mookameli ka tsela e tšoanang. Ho lokile, ebe o matha feela mopalami.
P: Empa ke balile hore ho lokela ho ba le ts'ebetso e le 'ngoe, kahoo Docker o tla tseba hore ho na le phoso mme a ka qala setshelo hape.
P: U se ke ua khathatsa hlooho ka lintho tse se nang thuso. 'Me ka kakaretso, joang? U tsamaisa see sohle joang ka mokhoa o le mong? E-re Igor Ivanovich a nahane ka botsitso, ha ho letho leo a le fumanang ho fumana moputso. Mosebetsi oa rona ke ho ngola khoutu. 'Me ka kakaretso, a re kea leboha hore ebe re mo ngoletse Dockefile.

Metsotso e 10 le livideo tse peli tse mabapi le likatse hamorao.

P: Ke entse tsohle. Ke kentse litlhaloso tse ling.
P: Mpontshe!

Mofuta oa morao-rao oa 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: E kholo, kea e rata. 'Me litlhaloso li ka Serussia, li bonolo ebile li ka baloa, bohle ba tla sebetsa joalo. Ke u rutile ntho e 'ngoe le e' ngoe, u ka etsa tse ling ka bouena. Ha re ye ho noa kofi...

Hona joale re na le Dockerfile e tšabehang ka ho feletseng, eo pono ea eona e tla etsa hore Igor Ivanovich a batle ho tlohela 'me mahlo a hae a tla utloa bohloko ka beke e' ngoe. Dockerfile, ehlile, e ka mpefala le ho feta, ha ho na moeli oa phetheho. Empa ho qala, sena se tla etsahala.

Ke kopa ho qetella ka mantsoe a qotsitsoeng ho tsoa ho Grigory Oster:

Haeba ha o so tiisehe
Re khethile tsela ea bophelo,
Mme ha o tsebe lebaka
Qala leeto la hao la basebetsi,
Senya mabone a mabone liphasejeng -
Batho ba tla re "Kea leboha" ho uena.
O tla thusa batho
Boloka motlakase.

Source: www.habr.com

Eketsa ka tlhaloso