Cleachdaiche ann an Docker

Andrey Kopylov, an CTO againn, dèidheil air, gu gnìomhach a’ cleachdadh agus ag adhartachadh Docker. Ann an artaigil ùr, tha e a 'mìneachadh mar a chruthaicheas tu luchd-cleachdaidh ann an Docker. Obraich gu ceart leotha, carson nach bu chòir còraichean freumha fhàgail aig luchd-cleachdaidh agus mar a dh’ fhuasglas iad duilgheadas comharran mì-chothromach san Dockerfile.

Bidh a h-uile pròiseas anns a 'ghobhar a' ruith mar neach-cleachdaidh bunaiteach, mura sònraich thu e ann an dòigh shònraichte. Tha e coltach gu bheil seo gu math goireasach, leis nach eil bacadh sam bith aig an neach-cleachdaidh seo. Sin as coireach gu bheil obrachadh mar fhreumh ceàrr bho shealladh tèarainteachd. Mura h-eil duine nan inntinn cheart ag obair air a’ choimpiutair ionadail le còraichean freumha, bidh mòran a’ ruith phròiseasan fo fhreumh ann an soithichean.

Tha an-còmhnaidh biastagan ann a leigeas le malware teicheadh ​​​​bhon bhogsa agus faighinn air a’ choimpiutair aoigheachd. A’ gabhail ris an fheadhainn as miosa, feumaidh sinn dèanamh cinnteach gu bheil pròiseasan taobh a-staigh an t-soithich air an ruith le neach-cleachdaidh aig nach eil còraichean air an inneal aoigheachd.

A 'cruthachadh neach-cleachdaidh

Chan eil cruthachadh neach-cleachdaidh ann an soitheach eadar-dhealaichte bho bhith ga chruthachadh ann an sgaoilidhean Linux. Ach, faodaidh na h-òrdughan atharrachadh airson diofar ìomhaighean bunaiteach.

Airson sgaoilidhean stèidhichte air debian, feumaidh tu na leanas a chur ris an Dockerfile:

RUN groupadd --gid 2000 node 
  && useradd --uid 2000 --gid node --shell /bin/bash --create-home node

Airson alpach:

RUN addgroup -g 2000 node 
    && adduser -u 2000 -G node -s /bin/sh -D node

Pròiseasan ruith bhon neach-cleachdaidh

Gus a h-uile pròiseas às deidh sin a ruith mar neach-cleachdaidh le UID 2000, ruith:

USER 2000

Gus a h-uile pròiseas às deidh sin a ruith mar an neach-cleachdaidh nód, ruith:

USER node

Barrachd a-steach sgrìobhainnean.

A 'stàladh tomhas-lìonaidh

Nuair a bhios tu a’ cur suas leabhraichean am broinn soitheach, thoir comas don neach-cleachdaidh faidhlichean a leughadh agus/no a sgrìobhadh. Gus seo a dhèanamh, feumaidh UID (GID) an neach-cleachdaidh anns a’ ghobhar agus an neach-cleachdaidh taobh a-muigh an t-soithich aig a bheil na ceadan iomchaidh faighinn chun fhaidhle a bhith co-ionnan. Anns a 'chùis seo, chan eil diofar ainmean-cleachdaidh.

Gu tric air coimpiutair Linux, tha UID agus GID neach-cleachdaidh co-ionann ri 1000. Tha na h-aithnichearan sin air an sònrachadh don chiad neach-cleachdaidh den choimpiutair.

Tha e furasta faighinn a-mach d’ aithnichearan:

id

Gheibh thu fiosrachadh farsaing mun neach-cleachdaidh agad.
Cuir an aithnichear agad an àite 2000 bho na h-eisimpleirean agus bidh a h-uile dad gu math.

A’ sònrachadh UID agus GID do neach-cleachdaidh

Ma chaidh an cleachdaiche a chruthachadh roimhe seo, ach feumaidh tu na aithnichearan atharrachadh, faodaidh tu a dhèanamh mar seo:

RUN usermod -u 1000 node 
  && groupmod -g 1000 node

Ma tha thu a’ cleachdadh an ìomhaigh bonn alpach, feumaidh tu am pasgan sgàile a stàladh:

RUN apk add —no-cache shadow

A’ dol seachad air an ID cleachdaiche taobh a-staigh an t-soithich nuair a bhios tu a’ togail an ìomhaigh

Ma tha an ID agad agus IDan nan daoine uile a tha ag obair air a’ phròiseact a’ maidseadh, dìreach sònraich an ID seo anns an Dockerfile. Ach, gu tric chan eil na IDan cleachdaiche a’ freagairt.

Chan eil e soilleir sa bhad ciamar a choileanas tu na tha thu ag iarraidh. Dhòmhsa, b’ e seo an rud as duilghe ann am pròiseas maighstireachd Docker. Tha mòran de luchd-cleachdaidh docker nach eil a 'tuigsinn gu bheil diofar ìrean ann am beatha ìomhaigh. An toiseach, tha an ìomhaigh air a chruinneachadh le bhith a’ cleachdadh Dockerfile. Nuair a bhios tu a’ ruith soitheach bho ìomhaigh, chan eilear a’ cleachdadh an Dockerfile tuilleadh.

Feumaidh cruthachadh cleachdaiche tachairt nuair a thèid an ìomhaigh a thogail. Tha an aon rud a 'buntainn ri bhith a' dearbhadh an neach-cleachdaidh fon tèid pròiseasan a chur air bhog. Tha seo a’ ciallachadh gum feum sinn dòigh air choireigin a dhol seachad air an UID (GID) taobh a-staigh an t-soithich.

Thathas a’ cleachdadh stiùiridhean gus caochladairean taobh a-muigh a chleachdadh anns an Dockerfile ENV и ARG. Dèan coimeas mionaideach de stiùiridhean an seo.

Faidhle docker

ARG UID=1000
ARG GID=1000
ENV UID=${UID}
ENV GID=${GID}
RUN usermod -u $UID node 
  && groupmod -g $GID node

Faodaidh tu argamaidean a thoirt seachad tro docker-compose mar seo:

docker-compose

build:
  context: ./src/backend
  args:
    UID: 1000
    GID: 1000

PS Gus maighstireachd a dhèanamh air a h-uile iom-fhillteachd aig Docker, chan eil e gu leòr na sgrìobhainnean no na h-artaigilean a leughadh. Feumaidh tu tòrr a chleachdadh, feumaidh tu faireachdainn fhaighinn airson Docker.

Source: www.habr.com

Cuir beachd ann