Ho paka khoutu ea ts’ebeliso ka lijaneng (mohlala, sets’oants’o sa Docker) ho na le melemo e mengata, ho kenyelletsa le lisebelisoa tse ka lebelloang le tse ka hlahisoang ho pholletsa le mechini le tikoloho. Ho nkeha hona ho felisa mathata a ho itšetleha, ho potlakisa lipotoloho tsa tlhahiso kapa linako tse ncha tsa ho fana ka mochini. Sechaba se bulehileng se natefeloa ke melemo ena e tlisoang ke lisebelisoa tsa taolo ea lijana, ‘me tikoloho e atolohile ho lekana haufinyane ho lumella liforomo le meralo e meng ho fumana melemo eo le eona. Ho na le likhetho tse ngata tse nang le lisebelisoa, ho kenyelletsa le ho laola lijana tse nang le khetho e tsebahalang ea hajoale ea Docker (kapa mefuta e meng e kang rkt), e pheta-pheta khoutu sebakeng sa heno ebe e romela lijana tse felileng ho hlahisoa libakeng tse kang AWS Elastic Container Service kapa Google Container Engine. Ho .NET ecosystem, moralo o mocha oa .NET Core 1.0 o tšehetsa ka botlalo ho tsamaisoa le ho romelloa ka har’a linkho. Lits’oants’o tsena li ka tsamaisoa ho sistimi ea Posix e amohelang baeti joalo ka Linux le OS X, ‘me posong ena ke tla be ke bonts’a tlhophiso le phallo ea mosebetsi bakeng sa ho kenya .NET Core codebase le ho e tsamaisa qetellong. Haholo-holo re tla sheba litšepiso tse hlokahalang tseo u tla li hloka ho kengoa sebakeng sa heno, ebe re theha projeke e ncha ea skeleton le Yeoman, ebe re Dockerize projeke ebe re e tsamaisa. Joalo ka lehlakoreng le leng, re boetse re fumana lijana tsa Windows Docker tsa tlhaho joalo ka ha ho phatlalalitsoe bekeng ena ho Microsoft e sebetsang ho Windows Server 2016. Tsena li tla ipapisa le litlolo tse ‘maloa tsa litšoantšo tse kenyelletsang windowsservercore
tse nang le sebaka sa basebelisi ba haufi-ufi (ho tlosa GUI kahoo ha ho joalo. RDP) kapa ho seng joalo nanoserver
e leng Windows API e fokolang haholo ‘me ho tlalehoa e le taelo ea boholo bo nyane ho feta ea pele. Lintlha tse kaholimo li batla li tsoa mali hajoale kahoo re tla shebana le tikoloho ea ‘setso’ ea Posix Docker posong ena. Ha re fihleng ho eona!
Litšupiso tsa semmuso
Ho na le lihokelo tse ‘maloa tseo u tla batla ho li hlahloba ha u qala ts’ebetso ena, ho kenyelletsa le tataiso ea semmuso ea ho seta le polokelo ea setšoantšo sa Docker .NET Core. Qalong ke ile ka leka tataiso e thathamisitsoeng ho ea pele, ‘me ha e ntse e sebetsa haholo e ne e hloka li-tweaks ho etsa hore setshelo se sebetse sebakeng sa heno e le ts’ebetso e koetsoeng (daemonized). Ea morao-rao e thathamisa litšoantšo tse fumanehang joalo ka ha li emetsoe ke li-tag tsa tsona – Dockerfile eo re tla e theha hamorao e tla etsa hore ho thehoe setšoantšo sa tloaelo ka khoutu ea hau ea app e thehiloeng ho e ‘ngoe ea litšoantšo tsa semmuso. Joalokaha .NET Core 1.0 e sa tsoa lokolloa ‘me e ntse e le tlas’a tsoelo-pele e boima, mohlomong u tla bona phapang e hlakileng pakeng tsa liphetolelo. Ka kakaretso u lokela ho khona ho ntlafatsa setšoantšo sa motheo ho tag ea morao-rao e le hore se lumellane le phetolelo e nepahetseng ea .NET Core e bontšitsoeng ho ea hau project.json
, kahoo haeba u ntse u bala sena nakong e tlang ‘me phetolelo ea hona joale e phahametse 1.0.1, etsa bonnete ba hore u sebelisa mofuta oa morao-rao oa tokollo ea mantlha. Taba ea pele, ha re kenyeng lijenereithara tse ‘maloa tsa Yeoman hore re tsebe ho etsa sampole ea app ebe re e Dockerize, hammoho le Docker ka boeona e le hore re ka etsa setshelo ho tsoa morerong o hlahisitsoeng.
Ho kenya litšepe
Tšoara lijenereithara tsena tse peli tsa Yeoman ho etsa morero o mocha le ho o fetola setshelo (haeba u se u ntse u e-na le morero oa hau oa .NET Core, tlola -aspnet e le ‘ngoe): npm install -g yo generator-aspnet generator-docker
Ebe, kenya Docker bakeng sa Mac kapa bakeng sa Linux distro ea hau.
Etsa khoutu
Haeba u se u ntse u e-na le kopo ea hau, u ka tlōla mohato ona. Ho seng joalo, sebelisa jenereithara ea Yeoman e kaholimo ho theha sampole e nyane ea .NET Core app: yo aspnet
Ebe u khetha Sesebelisoa sa Web API bakeng sa mohlala o bonolo. Joale u ka cd
kena bukeng ea eona ‘me u matha dotnet restore; dotnet run
ho penya kopo. Ho bala ho http://localhost:5000/api/values
tla otla e ‘ngoe ea litsela ebe ho khutlisa lintlha tse ling. Joale, ha re e fetole sejana sa Docker.
Ho eketsa setshelo sa Docker morerong oa hau
Sena se etsoa ho sebelisa jenereithara ena ea Yeoman: yo docker
Khetha .NET Core joalo ka mofuta oa projeke, ‘rtm’ joalo ka mofuta, ebe tse sa feleng le lebitso la khetho ea hau (haholo-holo ntho e khutšoane). Sena se tla fella ka litokomane tse ling tsa bootstrapping le lifaele tsa config, le Dockerfiles tse peli – e ‘ngoe bakeng sa nts’etsopele le e’ ngoe bakeng sa tlhahiso. E ‘ngoe le e’ ngoe e ipapisitse le e ‘ngoe ea mefuta e meraro ea litšoantšo e kenyelletsang setšoantšo sa Debian se se nang letho hammoho le tse ling kapa tse ling tsa NET Core tse itšetlehileng ka tsona, tse ntlafalitsoeng bakeng sa maemo a fapaneng. Mona ke lintlha tsa sehlooho ka seng:
-sdk
EG 1.0.0-preview2-sdk
– e na le lisebelisoa tse felletseng tsa Core SDK le CLI. E sebelisoa bakeng sa nts’etsopele / debugging / tlhahlobo ea yuniti, hape e ka tsamaisoa libakeng tsa kaho. Ena e kholoanyane ka boholo (~ 500 MB), empa sebopeho sa setšoantšo sa Docker se etsa hore sena se se ke sa phetoa (ke hore, se sebetsa hantle) bakeng sa lijana tse ngata.
-kaha
EG 1.0.0-preview2-onbuild
– e ntlafalitsoe bakeng sa libaka tsa kaho. Sena se ipapisitse le mofuta o kaholimo oa ‘sdk’, ‘me se eketsa kopi ea khoutu ea sesebelisoa sa hau, se sebetsa dotnet restore
ebile se na le taelo ea ENTRYPOINT ea ho qala seva sa hau sa tepo ha sesebelisoa se sebetsa.
-moko-theo
Ena e mpa e na le OS mmoho le matsoalloa a .NET Core dependencies, ‘me ka hona ke e nyenyane ka ho fetisisa (160 MB). Hape ho na le mofuta oa ‘-core’ o etselitsoeng ho nka tlhahiso ea dotnet publish
(bakeng sa lits’ebetso tse nkehang tsa .NET Core). E ‘ngoe ea tsena e ntlafalitsoe hore e sebelisoe tlhahisong feela. Ntlafatso: ho latela tataiso ea semmuso, setšoantšo se nepahetseng sa ASP.NET Core 1.0 ke microsoft/aspnetcore
. Sena se kenyelletsa ho its’etleha ka ntle ho lebokose mme se tlosa ho khutlisa sephutheloana se sa hlokahaleng joalo ka ha ho ne ho le joalo ka ho sebelisa onbuild
setšoantšo sa motheo phetolelong ea pele ea poso ena. Bakeng sa lisebelisoa tsa .NET Core-feela ho eletsoa ho sebelisa core
kapa core-deps
setšoantšo. Bakeng sa tlhaiso-leseling e batsi ka kopo bona poso ea Michael Simons ho maikutlo a ka tlase.
Ho hlophisa Dockerfile le ho tsamaisa sesebelisoa sa hau
Ho ea ka tokollo ea hona joale ea .NET Core (v1.0.1) le mofuta oa setšoantšo sa motheo (1.0.0-preview2), re hloka ho fetola Dockerfile e tloaelehileng hore e sebetse ka mokhoa o sa tsitsang (ka morao joalo ka daemon/ts’ebeletso, eseng ho bokapele ba ho nka boemelo). Ke ntse ke hlahisa app ea ASP.NET Core kahoo ke sebelisa aspnetcore
setšoantšo, haeba u se ka holimo u ka sebelisa core
kapa core-deps
setšoantšo. Fetola litaba tsa Dockerfile ho sena:
FROM microsoft/aspnetcore:1.0.1 WORKDIR /app COPY bin/Debug/netcoreapp1.0/publish /app ENV ASPNETCORE_URLS http://*:5000 EXPOSE 5000 ENTRYPOINT /bin/bash -c "dotnet YourAppName.dll"
Haeba mofuta oa morao-rao o tsoetse pele, nchafatsa mohala oa pele ho o lebisa ho eona, ‘me u fetole ‘YourAppName’ moleng oa ho qetela ho kenya lebitso leo u le ngotseng ho jenereithara ea Yeoman. Ha re se re entse joalo, re ka phatlalatsa kopo ea rona ho theha li-artifacts tsa eona: dotnet publish
Ebe u theha setšoantšo sa rona sa tloaelo sa Docker se kenyelletsang lintho tsa khale: docker build -t YourAppName .
Ho fumana lebitso la setšoantšo seo u ka se kenyang taelong e ka holimo, matha docker images
(ho sistimi ea ka lebitso la setšoantšo sa sesebelisoa sa ka le ne le ngotsoe ka litlhaku tse tlase). ‘Me qetellong, matha ka setshelo! docker run -d -p 5000:5000 YourAppName
The -d switch e etsa hore e sebetse ka mokhoa o koetsoeng (ka morao), ‘me -p e bula boema-kepe bo boletsoeng ho Dockerfile ho mochini o kantle. Seo se lokela ho ts’oana le boema-kepe ba app. U ka boela ua sheba http://localhost:5000/api/values
‘me u bone tlhahiso ea app ea hau e sebetsang ka har’a setshelo sa eona.
Ho laola bophelo ba setshelo
Mona ke litaelo tse ‘maloa tsa bohlokoa tsa ho sebetsana le lijana:
Hlahisa litšoantšo tse entsoeng
docker images
Bontša lijana tsohle
docker ps -a
Hlahisa lijana tse mathang
docker ps
Emisa setshelo se mathang
docker stop id
moo id e leng ID e tsoang ho taelo e ka holimo
Ke eona hona joale!
Ha u se u entse joalo, joale u na le setshelo se ka fetisetsoang nakong ea nts’etsopele kapa se fetisetsoa ho ts’ebeletso ea sets’oants’o bakeng sa ho sebetsa / ho lekanya ka boits’oaro, mohlala ho sebelisa Elastic Container Service (ECS). Sena se fana ka ts’ebeliso e ntle ea lisebelisoa ha e bapisoa le ho beha sete ea lijana ho moamoheli ea arolelanoang (plain EC2). Haeba u theha ts’ebeletso e ka arabelang ka mokhoa o otlolohileng ho kenya ts’ebetso ena e boetse e hlophisitsoe / e itirile ho feta ho iketsetsa litempele tsa litšoantšo le Li-Auto-Scaling Groups, empa seo ke sehlooho sa nako e ‘ngoe. Ke tšepa hore u fumane poso ena e le tsebo – hape hlokomela hore Raygun o na le mofani oa NET Core ea inehetseng ho Raygun4NET (e fumanehang ho tloha NuGet) e ka hapang mekhelo ea boemo ba app ea hau le ho e latela ka bo eona, ho etsa bonnete ba hore ha ho mohla u fosoang ke likokoana-hloko. Kamora hore o kenye Docker morerong oa hau, eketsa Raygun ho fumana matla a felletseng a mofuta o latelang oa mosebetsi oa DevOps. Ho fihlela nakong e tlang, setshelo se thabileng le ho phatloha ha liphoso!
Lisebelisoa tse ling
Ithute Metheo ea Docker Re ekelitse katleho joang ka 2000% ka .net core .NET Tools
Access Early Program
Features
Rider
Hlahisa Dockerfile bakeng sa .NET Applications with Rider
Thepa ea morao-rao ea nts’etsopele e ntse e tsoela pele ho fetoha, ‘me e tlisa melemo e makatsang bakeng sa bahlahisi. Ha ho pelaelo hore e ‘ngoe ea likhatelo-pele tse kholo e bile bokhoni ba ho kenya likopo. Bokhoni ba ho hlalosa, ho nts’etsapele, le ho tsamaisa lits’ebetso ka har’a tikoloho e ka ikatisang li fa bahlahisi boitšepo bo eketsehileng ba ho fana ka boiphihlelo ba ts’ebeliso ea boleng bakeng sa basebelisi. Docker esale a le ka pele ho phetoho ea lijana, a thusa bahlahisi ho sebelisa tsebo e ncha tšebetsong ea bona ea mosebetsi. Lits’oants’o ke sesebelisoa se setle, ho sa tsotelehe mokhoa oa ho atamela: hore na re theha li-monoliths tsa setso tse itšetlehileng ka kantle, re rala lisebelisoa tse shebaneng le li-microservices, kapa kae kapa kae lipakeng. Basebelisi ba .NET ba lokela ho beha leihlo ho containization, haholo-holo kaha .NET e nka mokhoa o mong oa ho sebelisana le sethala. Baetsi ba likoloi ba ‘nile ba sebetsa ka thata ho tlisa tšehetso ea Docker ea boemo ba pele ho stack ea ntlafatso ea .NET, kaofela e le boiteko ba ho thusa bahlahisi hore ba lule ba le teng ka khetho ea bona ea theknoloji. Ka poso ena, re tla hlahloba tse ling tsa lintlafatso tse tlang ka Rider 2021.1 Early Access Program (EAP) le hore na likarolo tsena li thusa joang ho qala leeto la ho kenya lits’ebetso. Re thabetse tšobotsi ena e latelang hoo re sitoang ho ithiba . Khoasolla Rider 2021.1 EAP
Ts’ehetso ea Docker e Ncha ea Tharollo
Ha re qala tharollo ea .NET, re tla hlokomela ho theoha ho hocha ha Docker Support skrineng sa puisano sa morero bakeng sa ASP.NET Core Web Application , Worker Service , le Console Application templates. Re ka khetha pakeng tsa boleng ba kamehla ba ba holofetseng kapa e ‘ngoe ea libaka tse peli tse tšehetsoeng hajoale: Linux le Windows. Bakeng sa bahlahisi ba bacha ho lisebelisoa le Docker, Linux ke sebaka se nepahetseng sa ho qala litšoantšo tsa motheo. Linux e ts’ehelitsoe joalo ka moamoheli oa matsoalloa le ka ts’ebeliso ea nnete ho li-OS tsohle tsa sejoale-joale, ha litšoantšo tsa Windows docker li tla sebetsa ho Windows OS feela. Ha re se re khethile boleng ba rona ba Ts’ehetso ea Docker , re tla bona lifaele tse peli tse ncha morerong oa rona:
Dockerfile
le .dockerignore
. Dockerfile
ke ea bohlokoa ho feta lifaeleng tse peli, kaha e hlalosa mehato ea ho aha e hlokahalang ho aha setshelo sa rona se lokiselitsoeng tlhahiso. Tlhokomeliso: faele e hlahisitsoeng ke template ke ea tlhahiso ea litšoantšo ‘me e tla kenya kopo ea ho sebetsa ka har’a setshelo. Fetola lifolakha tsohle tsa moaho ka har’a ho
Dockerfile
tloha Release
ho ea ho Debug
bakeng sa bokhoni bo nepahetseng ba ho lokisa liphoso. Ha Dockerfile
re bula, re ka bona litšoantšo tse ‘maloa tse sebetsang li hlaha ho mohlophisi. Ka holimo ka ho le letšehali, ka har’a sekoti, re na le letšoao la ho bapala habeli, le re lumellang ho etsa e ‘ngoe ea liketso tse tharo:
- Matha ho ‘Docker’ : Ho matha ho tla tsamaisa setshelo se seng se le teng haeba se le teng, kapa ho haha setšoantšo se secha ho tsoa ho sona
Dockerfile
ebe se tsamaisa setšoantšo joalo ka setshelo se secha. - Haha Sets’oants’o ho ‘Docker’ : Ho aha setšoantšo ho tla etsa mehato eohle e fumanehang ho
Dockerfile
‘me u thehe setšoantšo se secha sa lehae. - New Run Configuration : Khetho ena e re lumella ho theha tlhophiso e ncha ea “run” le e tsamaeang le eona
Dockerfile
. Ho feta moo, Run Configurations e re lumella ho beha li-tag litšoantšong tsa rona, ho beha lebitso la sets’oants’o, le ho sebelisa likhang tsa ho aha re sebelisa segokanyimmediamentsi sa Rider’s UI.
Ho khetha khetho ea Run on ‘Docker’ ho tla tsamaisa
docker build
taelo ebe ho qala ho hlahisa liphetho tsa fensetere ea lisebelisoa tsa lits’ebeletso . Setšoantšo se hahiloeng se ka tsamaisoa kapa sa fetisetsoa ho registry ea litšoantšo tsa docker hore se sebelisoe ke litho tse ling tsa sehlopha libakeng tse fapaneng. Bakeng sa bahlahisi ba qalang ka ho tsamaisa Docker sebakeng sa heno, etsa bonnete ba hore u sebelisa fensetere ea lisebelisoa tsa Litšebeletso ‘me u hlahlobe ho bona hore likou tsa HTTP le HTTPS li kentsoe ‘mapeng ho sistimi e sebetsang ea moamoheli. Ho tobetsa Phatlalatsa likou tsohle ho tla abela likou tsa sets’oants’o ka bo eona ho boema-kepe ba moamoheli. Ts’ehetso ea HTTPS e hloka tlhophiso e eketsehileng bakeng sa litifikeiti tsa SSL joalo ka ha ho boletsoe tokomaneng ea Microsoft.
Ntle le ho tsamaisa sengoloa se felletseng sa kaho, tšehetso ea Rider’s Docker e tla lemoha mehato e ntseng e eketseha ea ho aha tseleng ea ho aha setšoantšo se felletseng sa Docker. Ho leka mohato o mong le o mong ka ho eketseha, re ka sebelisa ketso ea ho aha (letšoao la hamore) ho qala mohato oa kaho. Kaha mekhahlelo ea kaho e itšetlehile ka e mong, Rider e tla boela e hahe mohato o mong le o mong o fetileng. Ho netefatsa hore mohaho o atlehile, re ka sebelisa fensetere ea lisebelisoa tsa Litšebeletso ho bona liphetho ho Build Log tab hammoho le setšoantšo se secha se seng se bonahala tlas’a karolo ea Litšoantšo tlas’a Docker .
Ke tlatsetso efe e ntle ho merero ea nts’etsopele ea greenfield, empa ho thoe’ng ka batho ba batlang ho kenya litharollo tse teng?
Kenya Docker ho Merero e teng
Ho kenya lits’ebetso tse teng tsa .NET ho bonolo joalo ka ho qala ka tšehetso ea Docker. Ho tsoa projekeng e teng, tobetsa konopo ea projeke ka ho le letona ebe u khetha Eketsa > Tšehetso ea Docker . Ho tla hlaha skrine e nyane ea puisano, e re fang monyetla oa ho khetha libaka tseo re li shebileng tsa Linux kapa Windows .
Ha re se re khethile tikoloho eo re e batlang, re tla bona lifaele tse peli tse tšoanang tsa
Dockerfile
projeke .dockerignore
ea rona. Ho tloha mona, ke khoebo joalo ka tloaelo.
Qetello
Sepheo sa Rider esale e le ho thusa bahlahisi ho fihlela tlhahiso ea ho qetela, ba tsepamisitse maikutlo ho faneng ka lisebelisoa tsa boemo ba pele bakeng sa mekhoa ea morao-rao le e latelang ea theknoloji. Ts’ehetso ea Rider’s Docker ke sesebelisoa se setle seo u ka bang le sona, hore na re hloka lijana ho sebelisa litšepe tsa kantle kapa ho hloka ho kenya lits’ebetso tsa rona. Ka tšehetso ea Docker bakeng sa lits’ebetso tsa .NET, bahlahisi ba ka tlolela hantle ho amohela Docker ho tloha qalong kapa ba eketsa tšehetso ea Docker hamorao ts’ebetsong ea nts’etsopele ha ba se ba loketse. Ho ithuta haholoanyane ka tšehetso ea Docker ho Rider, sheba li-blog tsa rona tse fetileng:
- Lijana? Litšoantšo? Kenyelletso ea Docker in Rider
- Ho sheba hantle Dockerfiles: ho theha setshelo se nang le Rider
- Docker Compose, e hlophise ‘me u tsoele pele bakeng sa C # 8 le lintlafatso tse ling tsa debugger ho Rider 2019.3
Kea leboha ha u bala poso ena. Khoasolla Rider 2021.1 Early Access Program (EAP), ‘me ka kopo siea maikutlo ho maikutlo a ka tlase. Setshelo se hlalosoa e le karolo ea software e nang le khoutu le litšepeho tse hlokahalang hore kopo e sebetse ka har’a tikoloho ea eona. Ka lebaka leo, lijana li arotsoe ho tse ling ha li ntse li arolelana sistimi e ts’oanang ea moamoheli. Nako ea ho sebetsa ea Docker e tlameha ho kenngoa ho sistimi e sebetsang ea moamoheli, e ka bang Windows kapa Linux. Thupelo ena ea lenaneo la .NET e bua ka ho kenya setshelo, Docker, le kamoo u ka tsamaisang lits’ebetso tsa hau tsa ASP.NET 6 ho Docker. Bala: Lisebelisoa tsa Tlhahiso bakeng sa Baetsi ba .NET
Containerization ke eng?
Containerization ke theknoloji e etsang hore ho be le tikoloho ea sebele ea hore lits’ebetso li kenelle. Ha o kenya kopo ea hau, e sebetsa sebakeng sa eona se ka thoko, ‘me tsohle tseo e li hlokang ho sebetsa li kenyellelitsoe, ‘me ha ho na litšepe tsa kantle. Sena se etsa hore lijana li be bobebe ‘me li nkehe habonolo, kaha li ka tsamaisoa ho tloha mochining ho ea ho mochini kapa lipakeng tsa bafani ba maru a sechaba ntle le liphetoho tsa tlhophiso (ha feela ba ts’ehetsa OS e tšoanang). Lits’oants’o li lumella baetsi ho arola lits’ebetso tsa rona ho tse ling ha ba ntse ba arolelana lisebelisoa le bona. U ka nahana ka ho tsamaisa thepa ho tšoana le ho tsamaisa ntho: setšoantšo se tšoana le lebokose le nang le lifaele tsohle tsa kopo ea hau – ha u theha mohlala o mocha oa kopo ea hau u sebelisa setšoantšo, e fetoha mohlala o khonang ho fumana lifaele tseo kaofela. ka hare. Sena se bolela hore, haeba ho etsahala ntho e itseng ka nako e le ‘ngoe – ha motho e mong a kena ho eona, baetsi ba mananeo ha baa lokela ho tšoenyeha ka letho le phoso le etsahalang maemong a mang hobane ba arohane.
Docker ke eng? Ke hobane’ng ha e hlokahala?
Docker ke sethala sa lisebelisoa se bulehileng se nolofatsang ho aha, ho tsamaisa le ho tsamaisa lits’ebetso. Li-container tsa Docker li ka fana ka mefuta e meng e nkehang habonolo le e bobebe ho feta likhomphutha tse fumanehang. Hangata lijana li kenyelletsa kopo, nako ea ho sebetsa le lilaebrari tse itšetlehileng ka eona. Docker ke sesebelisoa sa lisebelisoa se lumellang bahlahisi ho kenya kopo ea hau, litšepiso tsa eona, le tlhophiso ea eona ho yuniti e emeng. Ka ho nka hore u kentse Docker, u ka tsamaisa yuniti eo khomphuteng ea hau. Docker e etsa hore ho be bonolo ho tsamaisa le ho pheta likopo tsa hau libakeng tse ngata, joalo ka nts’etsopele, liteko, sethala le tlhahiso. Ka Docker, lisebelisoa tsa software tsa moqapi li ka kenngoa ka har’a lijana tse ka thōko. U sebelisa Docker, u ka tsamaisa lits’ebetso tsa hau ho li-platform tsohle tse tšehetsang Docker. Ho nts’etsapele lits’ebetso ho ASP.NET 6 – ebe o li kenya ka har’a lijana tsa Docker – ho ka fa baetsi ba mananeo melemo e mengata, ho kenyelletsa ho khona ho sebetsa ka lijana tse ngata le ho arolelana lits’ebetso tsa hau habonolo lipakeng tsa nts’etsopele le tikoloho ea tlhahiso.
Mokhoa oa ho kenya Docker
U ka khoasolla Docker bakeng sa Windows ho tsoa mona: https://docs.docker.com/desktop/windows/install/ Hang ha Docker e kentsoe khomphuteng ea hau, u ka sebelisa taelo e latelang ho fumana mofuta oa Docker o kentsoe:
docker --version
Bala: Software Management Software bakeng sa .NET Developers
Theha Morero o mocha oa ASP.NET Web API ho Visual Studio
Karolong ena, re tla hlahloba mokhoa oa ho aha projeke e ncha ea ASP.NET Web API ho Visual Studio:
- Bula IDE ea Visual Studio
- Tobetsa ho “Tsoela pele ntle le khoutu.”
- Tsamaisa ho File | Ncha | Morero
- Joale khetha template ea morero oa “ASP.NET Core Web API” .
- Tobetsa E latelang ho fetela skrineng se latelang
- Hlalosa lebitso la morero o lokelang ho etsoa le sebaka seo o lokelang ho etsoa ho sona disk
- Haeba u ka rata hore faele ea tharollo e thehoe bukeng e tšoanang le morero, khetha lebokose le reng “Beha tharollo le morero bukeng e le ‘ngoe” ; e tlohele e sa khethoa ho seng joalo.
- Tobetsa E ‘ngoe ho tsoela pele
- Ka skrineng sa “Lintlha tse ling” , hlakisa moralo oo u batlang ho o sebelisa
- Hlalosa mofuta oa netefatso kapa khetha “Ha ho letho” haeba u sa e hloke.
- Etsa bonnete ba hore u hlahlobile lebokose la ho hlahloba la Enable Docker joalokaha ho bontšitsoe ho Setšoantšo sa 1
- U ka tlosa li-checkbox tse ling
- Tobetsa Create ho phethela tšebetso e le hore projeke e ncha ea kopo ea webo ea ASP.NET e thehoe ka tsela eo u e boletseng pejana
Mokhoa oa ho kenya kopo ea ASP.NET ho Docker
Ho sebelisa Docker ho tsamaisa kopo ea hau ea ASP.NET, u tlameha ho qala ka ho haha Dockerfile . Faele ena e totobatsa hore na kopo ea hau e tla ntlafatsoa joang le ho phutheloa hore e sebelisoe ka sejaneng sa Docker. U sebelisa taelo ea ‘docker build’ , u ka hlahisa setšoantšo sa setshelo ka mor’a hore u thehe Dockerfile ea hau. Kamora hore setšoantšo sa hau se thehoe, u ka qala setshelo sa hau ka taelo ea ‘docker run’ .
Fetola Litaba tsa Dockerfile
Li-Dockerfiles li bonolo ho li sebelisa ebile li nolofalletsa ho fetolela habonolo le ho li etsa. Li sebelisetsoa ho hlalosa mokhoa oa ho theha litšoantšo tsa setshelo sa Docker. Dockerfile ke faele ea mongolo e nang le sete ea litaelo bakeng sa Docker ho haha setšoantšo. E na le likarolo tse latelang:
- FROM – e hlalosa setšoantšo sa motheo seo u batlang ho haha setšoantšo sa hau ho sona
- MOTLATSI – e khetholla motho ea bolokang polokelo ena le/kapa litaba tsa eona (ka boikhethelo)
- COPY – e kopitsa lifaele ho tloha litseleng tsa mochini oa hau ho ea ho likarolo tse ncha tsa setshelo sa hau ka nako ea ho sebetsa
- RUN – e tsamaisa litaelo ka har’a likarolo tse ncha ha li ntse li bōptjoa ka lipolelo tsa COPY kapa litaelo tsa ADD
Mona ke kamoo Dockerfile e shebahalang kateng ho Visual Studio:
HO TSOA ho mcr.microsoft.com/dotnet/aspnet:6.0 AS base MOSEBETSI /app HLAHALA 80 HO TSOA ho mcr.microsoft.com/dotnet/sdk:6.0 AS build MOSEBETSI /src KOPIA ["DockerDemo.csproj", "."] RUN dotnet khutlisetsa "./DockerDemo.csproj" KOPISI . . MOSEBETSI OA "/src/." RUN dotnet haha "DockerDemo.csproj" -c Release -o /app/build FROM haha AS phatlalatsa RUN dotnet e phatlalatsa "DockerDemo.csproj" -c Release -o /app/publish HO TLOHA motheong oa AS ho qetela MOSEBETSI /app KOPIA --ho tloha=phatlalatsa /app/publish. ENTRYPOINT ["dotnet", "DockerDemo.dll"]
Ka Docker Compose , o ka theha le ho tsamaisa lits’ebetso tsa li-container tse ngata. Sena se na le thuso bakeng sa maemo ao ho ona o hlokang ho tsamaisa lijana tse ngata, joalo ka ha o sebelisa sesebelisoa sa webo le database. Bala: Mokhoa oa ho sebetsa le Serilog ho C # le ASP.NET
Laela ho tsamaisa Sesebelisoa sa ASP.NET ho Docker
Ha u se u hahile kopo ea hau ka katleho, bula fensetere ea taelo ka mokhoa oa motsamaisi ‘me u phethe taelo e latelang ho theha setšoantšo sa Docker:
docker build -t dockerdemo .
Mme ho jwalo!
Mokhoa oa ho tsamaisa setšoantšo sa Docker
Ho etsa setšoantšo sa Docker seo re se entseng pejana, o ka sebelisa taelo e latelang fensetereng ea taelo:
docker run -d -p 8080:80 --name testapp dockerdemo
Mehopolo ea hoqetela ho ASP.NET le Docker
ASP.NET 6 e sebetsa ho .NET Core runtime, kahoo e ka etsoa li-platform tse ngata, tse kang macOS, Linux, le Windows. Thutong ena ea lenaneo, re hlahlobile ka har’a setshelo, melemo ea eona, le hore na re ka tsamaisa kopo ea ASP.NET 6 joang ho Docker. Bala haholoanyane lithuto tsa ASP.NET le litataiso tsa ntlafatso ea software.
Dockerizing .NET
Microsoft e fana ka litšoantšo tsa motheo tse hahiloeng esale pele bakeng sa ho tsamaisa lits’ebetso tsa .NET. U ke ke ua hloka ho sebetsana le ho kenya .NET runtime kapa SDK ka har’a setshelo sa hau sa Docker, kaha u ka atolosa ho tloha setšoantšong sa motheo sa Microsoft bakeng sa phetolelo ea .NET eo kopo ea hau e e sebelisang. Ntle le haeba o rerile ho kenya lijana tsa Windows ho seva sa Windows, o tla hloka ho sebelisa .NET Core kapa .NET 5. Nako ea khale ea NET Framework ha e-cross-platform ‘me e ke ke ea sebetsa ho li-container tse thehiloeng ho Linux. Haeba ha u na Docker e kentsoeng mochining oa hau oa nts’etsopele, o tla hloka ho kenya Docker Desktop hore o tsebe ho fihlella CLI. Haeba u sebelisa WSL ho Windows, u tla batla ho nolofalletsa enjene e thehiloeng ho WSL 2, e fanang ka ts’ebetso e ntle.
Ho hlahloba lintho, re tla theha sesebelisoa se secha sa ASP.NET API. Ts’ebetso e ts’oanang e akaretsang e tla sebetsa bakeng sa mofuta ofe kapa ofe oa kopo, joalo ka ha Docker e ntse e etsa moaho neng kapa neng ha o theha setshelo, mme o qala kopo ea hau ka taelo ea ho kena.
Theha faele e ncha e bitsoang
Dockerfile
motso oa morero oa hau, moo tharollo ea hau e leng teng. Beha litlhophiso tse latelang:
HO TSOA ho mcr.microsoft.com/dotnet/core/sdk AS build-env MOSEBETSI /app # Kopitsa csproj 'me u khutlisetse KOPI *.csproj ./ RUN dotnet khutlisetsa # Kopitsa tse ling tsohle 'me u hahe KOPISI . ./ RUN dotnet publish -o tsoa # Theha setšoantšo sa nako ea ho sebetsa HO TSOA ho mcr.microsoft.com/dotnet/core/runtime MOSEBETSI /app KOPIA --from=build-env /app/out. ENTRYPOINT ["dotnet", "DockerTest.dll"]
Dockerfile ena e hula setšoantšo sa .NET Core SDK ho etsa moaho. E kopitsa le .csproj
ho tsosolosa, ebe e kopitsa ntho e ‘ngoe le e’ ngoe ebe e tsamaisa mohaho. Ka mor’a moo, e theha setšoantšo se secha ho tsoa setšoantšong sa .NET Runtime ‘me e kopitse lisebelisoa tsa ho haha ho feta. Qetellong, sebaka sa ho kena se hlalosoa mona e le dotnet DockerTest.dll
. Sena se tla qala seva sa marang-rang sa ASP.NET, leha o ka hloka ho fetola liparamente bakeng sa ts’ebeliso ea hau, kapa u hlalose taelo e fapaneng ka ho felletseng ea ho kena. U ka leka ho tsamaisa setshelo sa hau ka docker container run
, ho e fetisetsa ho ID ea setshelo sa kaho:
setshelo sa docker se tsamaisa setshelo
Bakeng sa ts’ebeliso ea ASP.NET, o tla hloka ho bula likou ka ho etsa ‘mapa oa moamoheli ho ea boema-kepeng bo ka har’a setshelo:
docker matha -p 80:80 containerid
U ka bala tataiso ea rona ea ho sebetsa le Docker le Dockerfiles ho ithuta haholoanyane. RETHABILE MOLAPO
- › Li-GPU tse Ncha tsa AMD tsa RX 7000 li Ntle Ehlile ‘me Li Theko e Ntle
- › Amazon’s Fire TV 4K Ke $25 Feela, Theko ea eona e Tlase ka Nako eohle
- Li-PC tsa Windows tsa ARM li Tla ba Molemo ho Rekoa ka 2024, ho bolela Qualcomm
- › Li-headphone tsa Sony WH-1000XM5 li Khutlela ho Theko e Tlase ka ho Fetisisa
- A na Nka Sebelisa PSU ea Ka ea Khale Hape Khomphuteng ea Ka e Ncha?
- › Mokhoa oa ho tlosa balateli ho Instagram
How-To Geek ke moo u retelehelang teng ha u batla litsebi ho hlalosa theknoloji. Ho tloha ha re qala ka 2006, lingoliloeng tsa rona li balile makhetlo a fetang 1 bilione. U batla ho tseba haholoanyane? Na ho ne ho ke ke ha e-ba monate haeba lintho li sebetsa feela? Haholo-holo lefatšeng le lulang le fetoha la software. Ho lelekisa mathata a ho itšetleha le ho lokisa liphoso tsa sistimi ea ts’ebetso ea arcane – ha se tšebeliso e ntle ea nako. Karolo e ‘ngoe ea bohlokoa ea “lintho li sebetsa feela” – ho tšepahala. Haufinyane tjena, sechaba sa software se hatetse pele ho nts’etsopele e tsamaisoang ke liteko le mekhoa e tsoelang pele ea ho kopanya ho phahamisa boleng, ‘me ehlile, e ntlafatsa ho ts’epahala. Empa e ka fihla hole feela. Litsamaiso tse sebetsang li etsa mesebetsi e mengata ‘me li kenyelletsa likarolo tse ngata, kahoo ho li tsamaisa ka botšepehi ke mosebetsi o moholo. Sephiri sa mantlha sa ho ntlafatsa ho ts’epahala ke likarolo tse fokolang tse tsamaeang. Ka poso ena, ke tla bua ka hore na u ka sebelisa Docker joang ho tsamaisa ts’ebeliso ea hau sebakeng se ikhethileng, se fokolang se nang le likarolo tse fokolang tse tsamaeang.
Mehlala ea Litšepeho tsa App: ASP.Net Core le Docker Packages
Ho aha sesebelisoa ho Docker, pele re hloka sesebelisoa ho Dockerize. Thupelo ena e sebelisa projeke ea ASP.Net Core ho tsoa posong e fetileng ea blog ho Kena ka Keno ho App ea hau ea ASP.NET Core MVC.
Poso eo ea blog e u bontša mokhoa oa ho aha sesebelisoa se bonolo sa .Net Core se sebelisang Okta bakeng sa Tsamaiso ea Boitsebiso. U lokela ho sebetsa ka poso eo ea blog, kapa bonyane u e bale ‘me u kope repo. Hape o tla hloka:
- Docker
- Docker Compose
- OpenSSL
Theha Sesebelisoa sa ASP.NET Core
Docker e u lumella ho aha sesebelisoa ka tsela e ts’oanang eo u neng u ka theha sesebelisoa ho sebetsa mochining oa hau oa lehae. Ho qala kapele, kopanya git repo ena:
git clone https://github.com/oktadeveloper/okta-aspnet-mvc-core-sqlite-example.git
Lokisa Tsamaiso ea Boitsebiso bakeng sa App ea hau ea ASP.NET Core
Lintho tsa pele pele, theha sesebelisoa se tla re fa taolo ea boitsebiso u sebelisa khomphutha ea Okta developer:
- Kena ho The Okta Developer Console
- Kgetha Ditshebediso ho tswa ho menu e ka hodimo
- Tobetsa konopo ea Add Application
- Khetha Web e le sethala ebe o tobetsa E latelang
- Leqepheng la Litlhophiso :
- Lebitso: MyOktaApp
- Li-URI tsa mantlha:
https://localhost:5001
- Kena Lebisa Li-URI hape:
https://localhost:5001/authorization-code/callback
- Tobetsa Qetile ho theha sesebelisoa
Ha u se u thehile sesebelisoa, tlanya Edita ho fetola litlhophiso tse ‘maloa:
- Tsoa ho tsamaisa li-URI hape:
https://localhost:5001/signout-callback-oidc
- Qala URI ea ho kena:
https://localhost:5001/authorization-code/callback
Botlaaseng ba leqephe, u tla bona Lintlha tsa Bareki, ho kenyeletsoa ClientID le lekunutu la Client. Ela hloko lintho tsena hore u li sebelise hamorao.
Ntlafatsa Litlhophiso ho ASP.NET Core App
Mohlala oa sesebelisoa seo u se entseng se na le litlhophiso tsa taolo ea boitsebiso tse bolokiloeng ho appsettings.json
, ntle le haeba u thehile repo e kaholimo ho fapana le ho sebetsa posong e felletseng. Bophelong ba ‘nete, ha ua lokela ho boloka tlhophiso ena ho khoutu ea hau ea mohloli ka mabaka a ts’ireletso. Ka poso ena, re tla bonts’a mokhoa oa ho fetisa tlhophiso e matla ts’ebetsong ea hau, le ho koala lekhalo lena la ts’ireletso. Qala ka ho tlosa li-setting. Fetola appsettings.json
ho tlosa:
"Okta": { "ClientId": "{OktaClientId}", "ClientSecret": "{OktaClientSecret}", "Domain": "https://{yourOktaDomain}.okta.com" },
Ho leka phetoho ena: E tlameha ho khutla:
An exception of type 'System.ArgumentNullException' occurred in Okta.AspNet.Abstractions.dll but was not handled in user code: 'Your Okta URL is missing. Okta URLs should look like: https://{yourOktaDomain}. You can copy your domain from the Okta Developer Console.'
Mosebetsi o motle!
Sebelisa Docker ho boloka ASP.NET Core App
Docker ke pokello ea mahlale a virtualization a phuthetsoeng ka har’a sephutheloana se bonolo ho se sebelisa. Leha ho le joalo, u se ke ua lumella “virtualization” hore e u khopise. Docker ha e sebetsane le mechini ea sebele; ho e-na le hoo, e sebetsa ka ho arolelana kernel pakeng tsa lijana tse ngata tse arohaneng. E ‘ngoe le e’ ngoe ea linkho tsena e sebetsa e sa tsebe letho ka lijana tse ling tse ka ‘nang tsa arolelana kernel e tšoanang. Mechini ea Virtual, ka lehlakoreng le leng, e tsamaisa lits’ebetso tse ngata tse fapaneng tsa ts’ebetso ka holim’a sethala sa hardware se fumanehang, seo ka bosona, se tsamaeang ka holim’a sistimi e sebetsang ea moamoheli. Docker e bobebe ho feta, ‘me lijana tse ngata tsa Docker li ka sebetsa ka mochini o le mong oa moamoheli.
Theha ASP.NET Core App U sebelisa Docker
Ha re emiseng Docker mosebetsing. Senotlolo sa ho etsa kopo ea ho etsa kopo ke Dockerfile
. Kenya e ‘ngoe motsong oa projeke ea hau ka litaba tse latelang ho qala:
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build WORKDIR /src COPY ["OktaMvcLogin.csproj", "./"] RUN dotnet restore "./OktaMvcLogin.csproj" COPY . . RUN dotnet build "OktaMvcLogin.csproj" -c Release -o /app
Mantsoe a maholo ke litaelo tsa Docker. Ha li ngata tsa tsona, ‘me u ka fumana lintlha tsa tsona kaofela webosaeteng ea Docker. FROM
e bolella Docker hore na u batla ho sebelisa setšoantšo sefe bakeng sa setshelo sa hau. Setšoantšo ke senepe sa sistimi ea faele e hatelitsoeng. Hape, phello ea ho haha Dockerfile
ke setšoantšo se secha. Kahoo, mokhoa o mong oa ho sheba a Dockerfile
ke letoto la liphetoho tse fetolelang setšoantšo se le seng ho ba setšoantšo se seng se kenyelletsang kopo ea hau.
WORKDIR
e bolella Docker hore na ke buka efe eo u ka e sebelisang ho etsa litaelo tse latelang.COPY
e bolella Docker ho kopitsa faele ho tsoa ho sistimi ea hau ea lehae ho ea setšoantšong sa setshelo.RUN
e phethahatsa litaelo ka har’a setšoantšo sa setshelo.
Kahoo, ka Senyesemane se hlakileng — sena Dockerfile
se ipapisitse le dotnet/core/sdk
setšoantšo se tšoaretsoeng ho mcr.microsoft.com
. Docker e kopitsa .csproj
faele ho tsoa bukeng ea hau ea sebaka sa heno ho etsa setšoantšo sa hau le dotnet restore
ho khutlisetsa liphutheloana tsohle tse boletsoeng. Ha seo se se se entsoe, Docker e kopitsa lifaele tse setseng ho tsoa bukeng ea hau e sebetsang, ebe e dotnet build
theha Release build at /app
.
Laola litšepe ka nepo ka Docker
Ha u bala sena, mohlomong u ntse u nahana, ke hobane’ng ha u itšoenya ka ho kopitsa faele ea morero le ho matha restore
pele u kopitsa khoutu ea mohloli le ho sebetsa build
? Ke hobane’ng ha u sa kopitse ntho e ‘ngoe le e’ ngoe ebe u haha le ho tsosolosa ka mohato o le mong? Karabo ke caching. Nako le nako ha motho a Dockerfile
fetola setšoantšo sa docker, Docker e etsa snapshot. Haeba u kopitsa faele kapa u tsamaisa taelo ea ho kenya sephutheloana, Docker e nka liphapang ka senepe se secha. Docker ebe e boloka le ho sebelisa linepe hape haeba setšoantšo se sa fetoha. Kahoo, ka ho khutlisetsa litšepe e le mohato o arohaneng, senepe sa setšoantšo se ka sebelisoa hape bakeng sa moaho o mong le o mong, ha feela litšepeho li so fetohe. Ts’ebetso ena e potlakisa moaho haholo kaha ho jarolla litšepe ho ka nka nako.
Sebelisa ASP.NET Core App ka har’a nkho ea Docker
Joalokaha ho boletsoe ka holimo, a e Dockerfile
ka nkoa e le letoto la liphetoho tsa tsamaiso ea lifaele. Faele ea hau ea hajoale e fetola sets’oants’o sa SDK se fanoeng ke Microsoft hore e be sets’oants’o se secha se nang le Microsoft SDK le tokollo ea sesebelisoa sa hau se bolokiloeng ho /app
. Leka sena::
# Build an image using the Dockerfile in the current directory docker build --target build -t oktamvclogin . # Run the image, executing the command 'ls /app' docker run -it oktamvclogin ls /app
U tla bona hore app
foldara e setšoantšong sa setshelo sa hau e na le tlhahiso ea Release build bakeng sa projeke ea hau. Ho fihla hajoale, o thehile kopo ea hau ka har’a setshelo sa Docker. Mosebetsi o motle! Leha ho le joalo, hopola Docker, joalo ka sesebelisoa, e fokotsa palo ea likarolo tse tsamaeang ts’ebelisong ea hau. Ho ntlafatsa ho tšepahala ka ho felisa ho itšetleha ho sa hlokahaleng, re boetse re hloka ho tlosa lisebelisoa tsa ntlafatso, tse ka bakang likhohlano le likotsi tse bulehileng tsa tšireletso. Setšoantšo sa SDK se fanoeng ke Microsoft se kenyelletsa lisebelisoa tsa nts’etsopele, kahoo ha re shebeng mokhoa oa ho li felisa. Kenya mela e latelang ho ea hau Dockerfile
:
FROM build AS publish RUN dotnet publish "OktaMvcLogin.csproj" -c Release -o /app FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base WORKDIR /app EXPOSE 5001 FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "OktaMvcLogin.dll"]
U tla bona FROM
litaelo tse ‘maloa, e’ ngoe le e ‘ngoe e na le AS
poleloana. Syntax ena e fana ka meaho ea mekhahlelo e mengata, senotlolo sa ho tlosa litšepe tse sa hlokahaleng. Ka Senyesemane se hlakileng, mokhoa oa hau oa ho aha hona joale ke:
- Sebelisa setšoantšo sa SDK ho theha sebopeho sa tokollo ea ts’ebeliso. Bitsa sethala sena ‘kaha’
- Sebelisa setšoantšo sa sethala sa ‘build’ ho phatlalatsa sesebelisoa ho foldara ea ‘app’. Letsetsa sethaleng sena ‘phatlalatsa’
- Khoasolla setšoantšo sa mantlha sa ASP.NET se fanoeng ke Microsoft, se nang le likarolo tsa nako ea ho sebetsa feela. Bitsa sethala sena ‘base’
- U sebelisa setšoantšo sa sethala, kopitsa litaba tsa buka ea “app” ho tloha sethaleng sa “phatlalatso”. Bitsa mokhahlelo ona ‘final’
Kahoo, Dockerfile
hona joale u sebelisa setšoantšo sa SDK ho haha sets’ebetso sa hau, ebe se lahla setšoantšo seo ‘me se sebelisa setšoantšo sa nako ea ho sebetsa ho tsamaisa kopo.
Etsa kopo ea ASP.NET Core ho Docker
Taelo ENTRYPOINT
e hloka tlhokomelo e khethehileng. Ho fihlela hajoale o bone kamoo Dockerfiles e hlalosang letoto la liphetoho tsa sistimi, empa hangata ho feta moo, setshelo sa Docker se ka sebetsoa. Ka seo, ke bolela hore o tsamaisa setshelo ho Docker, mme sephetho ke ts’ebeliso e hlophisitsoeng ka botlalo, e sebetsang. ENTRYPOINT
ke o mong oa mekhoa e etsang hore seo se sebetse. Ha o tsamaisa setshelo, Docker e phethahatsa taelo e boletsoeng ke ENTRYPOINT
. Tabeng ea kopo ea hau, taelo eo ke dotnet OktaMVCLogin.dll
. Kahoo joale…
docker build -t oktamvclogin . docker run oktamvclogin
… e fana ka mokhelo o tšoanang le oa pele:
Unhandled Exception: System.ArgumentNullException: Your Okta URL is missing. Okta URLs should look like: https://{yourOktaDomain}. You can copy your domain from the Okta Developer Console.
Ke lekhetlong lena feela, e se e le Dockerized. Ho joalo joang bakeng sa tsoelo-pele? Sesebelisoa ha se sebetse hobane u tlositse litlhophiso tse hlokolosi ho appsettings.json
.
Fetisetsa Configuration ho Docker
Ho lokisa bothata bona, re hloka ho fetisetsa tlhophiso ho setshelo sa Docker e le mefuta e fapaneng ea tikoloho. ASP.NET Core e khetha mefuta eohle ea tikoloho e kentsoeng pele le ASPNETCORE_
ho e fetolela __
ho :
. Ho fetisa litekanyetso tsa tlhophiso bakeng sa Okta:ClientId
, Okta:ClientSecret
le Okta:Domain
ho fetola taelo ea hau ka tsela ena:
docker run -e ASPNETCORE_Okta__ClientId="{yourClientId}" \ -e ASPNETCORE_Okta__ClientSecret="{yourClientSecret}" \ -e ASPNETCORE_Okta__Domain="https://{yourOktaDomain}" \ oktamvclogin
Lekhetlong lena sephetho se tla ba hantle haholoanyane:
Hosting environment: Production Content root path: /app Now listening on: 'http://[::]:80' Application started. Press Ctrl+C to shut down.
HLOKOMELA : u kanna ua bona temoso ea ‘No XML Encryptor’. U ka iphapanyetsa seo bakeng sa mokhoa ona oa ho tsamaea.
Lokisa marang-rang a Docker
Ho tsoa molaetsa ona, u ka ‘na ua nahana hore u ka ea ho http://localhost
bona app ea hau ka khanya eohle ea eona. Leha ho le joalo, sesebelisoa sa hau se sebetsa ka har’a setshelo ‘me se mamela ho port 80 empa, ka ho sa feleng, mochini oa hau oa lehae ha o khone ho fihlella port 80 setshelong sa hau. Hopola, setshelo sa hau se sebetsa lefatšeng la sona le lenyenyane. Lefatše leo le na le marang-rang a lona, ’me le notletsoe ka ho sa feleng. Ka lehlohonolo, o ka khona ho fihlella marang-rang a setshelo sa hau kapele ka ho etsa ‘mapa oa boema-kepe mochining oa heno ho ea boema-kepeng bo ka har’a sets’oants’o sa hau.
docker run -e ASPNETCORE_Okta__ClientId="{yourClientId}-" \ -e ASPNETCORE_Okta__ClientSecret="{yourClientSecret}" \ -e ASPNETCORE_Okta__Domain="{yourOktaDomain}" \ -p 5001:80 \ oktamvclogin
Joale, haeba u bula sebatli ‘me u ee ho http://localhost:5001
(hobane u entse ‘mapa oa port 5001 ho port 80 ka setshelo sa hau), Et voila! HLOKOMELA : mokhoa ona o loketse nts’etsopele. Leha ho le joalo, bakeng sa mesebetsi e mengata ea tlhahiso, Docker e fana ka likhetho tse fapaneng tse etselitsoeng ho laola marang-rang a sebele. Bakeng sa tlhaiso-leseling e batsi, bona kakaretso ea marang-rang ho litokomane tsa Docker.
Lokisa SSL/TLS bakeng sa setšoantšo sa hau sa Docker
Haeba u tobetsa sehokelo sa Kena ts’ebelisong ea hau, ho ka etsahala hore u fumane phoso ho tsoa ho Okta ka molaetsa:
Description: The 'redirect_uri' parameter must be an absolute URI that is whitelisted in the client app settings.
Bothata bona bo etsahala hobane ha o ne o lokisa ts’ebeliso ho dashboard ea Okta, u boletse hore URL e lebisang hape ke HTTPS. Joale, kaha u fihletse sebaka sa marang-rang u sebelisa HTTP, URL e tsamaisang hape ha e tsamaellane, ‘me u fumana phoso ena. Tharollo e ‘ngoe ke ho ntlafatsa URL e tsamaisang hape ts’ebelisong ea Okta. Leha seo se tla sebetsa, ke mohopolo o mobe. Tsela eo u tsamaisang thepa ka eona e na le tlhahisoleseding e hlokolosi le ho thibela hore e baloe ha e le leetong, e lokela ho sireletsoa ho sebelisoa mocha oa TLS.
Iketsetse setifikeiti se itekenetseng
Ho theha TLS, o tla hloka setifikeiti. Bophelong ba ‘nete, u ka reka e tsoang ho mofani oa thepa ea tsebahalang, empa molemong ona, setifikeiti se itekenetseng se tla etsa mosebetsi. Hlahisa setifikeiti:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Ho sebelisa setifikeiti le Kestrel (ASP.NET Core webserver), re hloka ho theha pfx
faele e nang le linotlolo tsa sechaba le tsa lekunutu. U ka etsa joalo ka ho sebelisa:
openssl pkcs12 -export -out webserver.pfx -inkey key.pem -in cert.pem
Joalo ka karolo ea ts’ebetso ea ho theha setifikeiti, o tla kopuoa ho theha senotlolo sa ho Romela kantle ho naha. Netefatsa hore o ela sena hloko kaha o tla se hloka hamorao ho sebelisa setifikeiti. U tla boela u tsamaee ka mokhoa oa ho hlophisa ( Lebitso la Naha , Naha kapa Profinse , joalo-joalo).
Kenya setifikeiti ho setšoantšo sa Docker
O thehile setifikeiti tsamaisong ea hau ea faele ea lehae. Ho e sebelisa ka sejaneng sa hau sa Docker, fetola Dockerfile ho e kopitsa setšoantšong sa ho qetela. Fetola mokhahlelo oa `ho qetela’ ho:
FROM base AS final ENV ASPNETCORE_URLS="https://+" ENV ASPNETCORE_Kestrel__Certificates__Default__Path="./webserver.pfx" WORKDIR /app COPY --from=publish /app . COPY webserver.pfx . ENTRYPOINT ["dotnet", "OktaMvcLogin.dll"]
Ho beha maemo a ASPNETCORE_URLS ho https://+
netefatsa hore sebatli se mamela feela likopo tsa https. Kaha o fetotse Dockerfile, o ka aha setšoantšo hape mme oa se tsamaisa:
docker build -t oktamvclogin . docker run -e ASPNETCORE_Okta__ClientId="{yourClientId}" \ -e ASPNETCORE_Okta__ClientSecret="{yourClientSecret}" \ -e ASPNETCORE_Okta__Domain="{yourOktaDomain}" \ -e ASPNETCORE_Kestrel__Certificates__Default__Password="{yourExportPassword}" \ -p 5001:443 \ oktamvclogin
Hlokomela phetoho e eketsehileng ea tikoloho ka senotlolo sa ho romela setifikeiti le hore ‘mapa oa boema-kepe o fetohile ho tloha ho port 80 ho ea ho port 443. Joale u ka ea ho https://localhost:5001
, ‘me lekhetlong lena, u tla khona ho kena le ho sebelisa mohlala oa kopo ka nepo. ELA HLOKO: Kaha o sebelisa setifikeiti se ingoletseng, sebatli sa hau se ka hlahisa leqephe la temoso. U ka hlokomoloha temoso ena ka mokhoa o sireletsehileng.
Ha se Mokhoa o Molemohali oa ho Qala Sets’oants’o sa Hao sa Docker
Ho fetolela sesebelisoa ho sebetsa ho Docker ho hlakile ebile ho fana ka melemo e mengata. Leha ho le joalo, ho fetisa litlhophiso tse ngata ha ho docker run
bonolo haholo ho basebelisi ‘me ho na le liphoso. Ka lehlohonolo, batho ba molemo ba Docker ba se ba tlile ka tharollo bothateng bona – docker-compose
. Ho sebelisa Docker Compose ho bonolo haholo. Theha faele e bitsoang docker-compose.yml
foldareng e ts’oanang le khoutu ea hau Dockerfile
le mohloli ‘me u kenye tse latelang:
version: "3" services: web: build: . image: oktamvclogin ports: - "5001:443" environment: - ASPNETCORE_Okta__ClientId: "{yourClientId}" - ASPNETCORE_Okta__ClientSecret: "{yourClientSecret}" - ASPNETCORE_Okta__Domain: "{yourOktaDomain}" - ASPNETCORE_Kestrel__Certificates__Default__Password: "{yourExportPassword}"
Faele docker-compose
e na le litekanyetso tsohle tseo u li fetisitseng pele ho docker run
taelo. Joale, ho tsamaisa kopo: ‘Me tsohle li sebetsa feela. Matsatsi a monate. Ehlile, sena ha se hohele bokaholimo ba seo u ka se etsang ka Docker Compose. Ho tseba haholoanyane, sheba kakaretso ea semmuso ea Docker Compose
Kopanya ‘me u hlophise sesebelisoa sa ASP.NET Core ka Docker
Ka ho sebetsa posong ena, u ithutile ho:
- Kenya sesebelisoa sa ASP.NET Core ka Docker
- Fetisetsa tlhophiso ho setshelo sa Docker
- Lokisa SSL/TLS bakeng sa sesebelisoa sa ASP.NET Core se nang le setshelo
- Sebelisa
docker-compose
ho tsamaisa setshelo sa Docker hantle se nang le tlhophiso e itseng
Hona joale, ka ho kenyelletsa le Dockerfile
khoutu ea mohloli oa hau, moqapi ofe kapa ofe a ka haha app ea hau – ka botšepehi. Ba ka e aha tikolohong efe kapa efe, ha feela ba na le Docker e kentsoeng, ‘me e tla sebetsa ka tsela e ts’oanang hantle. Nako le nako, ntle le mokhelo. Ha ho na mathata a ho itšetleha, ha ho na mathata a sistimi ea ts’ebetso. E tla sebetsa feela. Eseng seo feela, empa o ka tsamaisa setshelo se le seng ka kotloloho ho tlhahiso ntle le phetoho e ngoe hape.
Ithute ho eketsehileng ka Docker le ASP.NET Core
Haeba u batla ho ithuta haholoanyane ka ASP.NET Core, Okta, kapa Docker, sheba lintlha tsena tse ling!
- Tataiso ea Moqapi ho Docker – Kenyelletso e Bonolo
- Tataiso ea Moqapi ho Docker – The Dockerfile
- Tataiso ea Moqapi ho Docker – Docker Compose
- Kenya Kena ho App ea hau ea ASP.NET Core MVC
Joalo ka tloaelo, haeba u na le lipotso mabapi le poso ena, li tlohele maikutlong a ka tlase. Ho fumana litaba tsa nts’etsopele ea Okta, re latele ho Twitter ‘me u ingolise ho mocha oa rona oa YouTube!
- Mokhoa oa ho khaola li-circles ka dremel
- Mokhoa oa ho lekola ts'ebeliso ea cpu ho linux ha nako e ntse e feta
- Mokhoa oa ho sebelisa hi%e2%80%90lift jack
- Mokhoa oa ho hlakola software ea antivirus ea norton
- Mokhoa oa ho lokisa foreime ea bethe e kokomohang