Ní féidir le build Docker teacht ar spleáchas príobháideach: seiceáil é seo
Is féidir le pacáiste príobháideach a fhaigheann an t-óstach fós teip taobh istigh den build. Ainmnigh an builder, cruthaigh an bealach, agus ansin gléas an token mar rún build.
Is féidir le pacáiste príobháideach a réitítear go breá ar do mheaisín teip taobh istigh den build le 404 nó le teorainn ama, agus is annamh gurb é an Dockerfile an chúis. Ritheann céim an build i spásainm líonra eile, le radharc DNS eile agus stór dintiúirí eile ná an sliogán ina ndearna tú tástáil. Téigh trí na seiceálacha seo in ord agus stad ag an gcéad cheann a theipeann, mar glactar leis gach seiceáil ina dhiaidh sin go n-éirigh leis an gceann roimhe. Ainmníonn gach céim an t-ordú a shocraíonn an cheist.
Cuir tús le hainmniú an builder, ní an Dockerfile
Is féidir BuildKit a bheith áitiúil, i gcoimeádán nó ar mheaisín eile, agus tá a líonra réamhshocraithe féin ag gach ceann. Rith docker buildx ls agus léigh an nód atá marcáilte le réalta sula n-athraíonn tú rud ar bith. Níl an tiománaí docker-container ná builder scamall ag roinnt an bhealaigh phríobháidigh ar do ríomhaire glúine díreach mar gur chlóscríobh tú an t-ordú ansin. Más builder cianda an ceann gníomhach, caithfear gach seiceáil eile a rith i gcoinne an óstaigh sin seachas do stáisiún oibre.
Iompraíonn an builder freisin a chumraíocht resolver agus a athróga proxyféin. Léitear an dá rud ag am an build agus ní fhaightear le hoidhreacht iad ón teirminéal a sheol an build.
Cruthaigh an bealach líonra ó thaobh istigh de chéim build
Scríobh céim aonuaire a réitíonn óstach an spleáchais agus a osclaíonn nasc leis. Is é seo an t-aon tástáil a fhreagraíonn an cheist don builder seachas do do shliogán.
FROM alpine:3.20
RUN apk add --no-cache curl bind-tools && getent hosts registry.example.internal && curl -sS -o /dev/null -w "%{http_code}
" https://registry.example.internal/simple/
Tóg an comhad sin leis an builder céanna, an modh líonra céanna agus na gléasanna rúin céanna a úsáideann do bhuild fíor: docker buildx build --builder remote0 -f Dockerfile.probe --progress=plain .. Mura getent priontálann sé rud ar bith, tá an locht i réiteach ainmneacha agus ní dhearna aon dintiúir é a shocrú. Má réitítear an t-ainm ach má thuairiscíonn curl teorainn ama, is é an bac an bealach nó an pholasaí amach roimh an gclárlann.
Scrios an tóireadóir chomh luath agus a fhreagraíonn sé. Céim diagnóiseach atá ann agus níor cheart riamh é a chlibeáil ná a bhrú.
Gléas an dintiúir in ionad é a chóipeáil
Nuair a oibríonn an bealach, is é an fíordheimhniú an chéad teip eile sa líne. Nochtann gléas rúin BuildKit comhad d’aon chéim RUN amháin gan é a scríobh i gciseal, rud a theastaíonn ón uirlis spleáchais agus nár cheart don íomhá a choinneáil.
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc npm ci --omit=dev
Caithfear an rún a sholáthar ó lasmuigh den Dockerfile: docker buildx build --secret id=npmrc,src=/home/me/.npmrc .. Fanann an comhad leis an gcliant agus ní théann sé riamh isteach i stair na híomhá. Ní dhéanann ARG nó ENV leis an token céanna an obair seo, mar taifeadtar an dá rud i gcumraíocht na híomhá.
Teastaíonn a chonair sprice féin ó íomhá nach root, mar shampla /home/app/.npmrc nó an comhad comhionann do pip, Maven nó Cargo. Caithfidh sprioc an ghléis teacht leis an úsáideoir a ritheann an t-ordú, nó tuairisceoidh an uirlis comhad cumraíochta atá ar iarraidh ach atá ann i ndáiríre.
Iniúch cad a fhágann an uirlis spleáchais san íomhá
Coinníonn gléas sealadach an dintiúr amach as ciseal, ach ní chuireann sé cosc ar an uirlis rud eile a scríobh. Fágann bainisteoirí pacáiste comhaid ghlasála, eolairí taisce agus uaireanta an URL clárlainne réitithe ina ndiaidh.
Léigh an córas comhad críochnaithe in ionad muinín a chur sa Dockerfile. docker history --no-trunc image:tag liostaíonn sé gach ordú ciseal, agus docker run --rm image:tag sh -c "ls -a /root" taispeánann sé cad a mhair isteach sa choimeádán atá ag rith. Fiú nuair nach ndearnadh ach an comhad a ghléasadh, fanann token a scríobhtar i líne log le linn npm ci ina ligean fós.
Léigh an logáil build freisin, mar --progress=plain priontálann sé aschur na n-orduithe focal ar fhocal. Má thagann an token chun solais ansin, rothlaigh é sula ndéanfaí aon rud eile agus cuir trí chomhad a léann an uirlis go ciúin é.
Deimhnigh nach dteastaíonn an bealach príobháideach ón íomhá rite a thuilleadh
Is dhá thomhaltóir éagsúla den spleáchas céanna an build agus an feidhmchlár atá ag rith, agus ní theastaíonn an bealach príobháideach ach ón gcéad cheann. Ba cheart d’íomhá chríochnaithe tosú, a spleáchais rite a réiteach agus trácht a sheirbheáil gan dintiúir an build.
Tástáil é san áit nach bhfuil an chlárlann phríobháideach inrochtana, nó cuir tús leis an gcoimeádán le --network none agus deimhnigh go n-éiríonn sé gan an rún gléasta. Tá coimeádán nach dtosaíonn ach nuair a bhíonn rún an build i láthair fós ceangailte le timpeallacht an build.
Má theastaíonn an chlárlann go fírinneach ón gcoimeádán ag am rite, is cinneadh rochtana ar leith é sin, agus baineann sé le stór rún an orkestraitheora seachas leis an build. Déan an dá chonair a dhoiciméadú ar leith le nach ndéanfaidh éinne iarracht tarraingt ag am rite a dheisiú le bratach build. Nuair a éiríonn leis an gcúig sheiceáil go léir, tá cúis ainmnithe ag an symptom bunaidh ar gach ciseal in ionad buille faoi thuairim faoi líonra Docker.