Mar a fheiceann tú ón alt roimhe seo, d'oibrigh mé le tionscadail éagsúla. Is gnách go dtéann na chéad laethanta i bhfoireann nua ar an mbealach céanna: suíonn an t-inneallóir síos domsa agus déanann sé na céimeanna draíochta chun an feidhmchlár a shuiteáil agus a imscaradh. Tá Docker fíor-riachtanach d'fhorbróirí tosaigh, mar gheall ar. Is minic a scríobhtar an t-inneall i raon leathan de chruach PHP/Java/Python/C# agus ní gá don tosach an cúl a bhaint gach uair chun gach rud a shuiteáil agus a imscaradh. Ach in aon áit amháin chonaic mé bunch de Docker-Jenkins le imscaradh trédhearcach, logs, screwed le autotests.
Scríobhadh go leor alt mionsonraithe faoin docker. Díreoidh an t-alt seo ar Iarratas Leathanach Aonair a imscaradh ag baint úsáide as Ródaire VueJS / Vue, an chuid freastalaí i bhfoirm API RESTful le NodeJS, agus úsáidtear MongoDB mar bhunachar sonraí. Úsáidtear Docker Compose chun cur síos a dhéanamh ar fheidhmeanna coimeádáin iolracha agus iad a rith.
Cén fáth ar gá duit Docker
Ligeann Docker duit an próiseas a bhaineann le feidhmchlár a imscaradh a uathoibriú. Ní gá don fhorbróir cláir a shuiteáil leis féin a thuilleadh, déileáil le neamh-chomhoiriúnacht an leagain ar a mheaisín. Is leor Docker a shuiteáil agus orduithe 1-2 a chlóscríobh isteach sa chonsól. Tá sé an-áisiúil é seo a dhéanamh ar Linux.
Ag tosú
Socraigh
Struchtúr fillteáin
Cruthaímid 2 fhillteán d'fheidhmchláir chliaint agus fhreastalaí. Is cumraíocht é comhad leis an síneadh .yml Comhdháil Dockeri gcás ina sainítear agus ina nasctar na coimeádáin iarratais.
docker-compose.yml:
version: "3"
services:
mongo:
container_name: mongo
hostname: mongo
image: mongo
ports:
- "27017:27017"
server:
build: server/
#command: node ./server.js #здесь можно перезаписать CMD из Dockerfile в /server
ports:
- "3000:3000"
links:
- mongo
client:
build: client/
#command: http-server ./dist #здесь можно перезаписать CMD из Dockerfile в /client
network_mode: host
ports:
- "8089:8089"
depends_on:
- server
Cruthaímid 3 sheirbhís i ndugairí: do NodeJS, MongoDB agus do stats ar Vue. Chun an cliant a nascadh leis an bhfreastalaí curtha leis ag brath ar an bhfreastalaí. Chun MongoDB a nascadh le API an fhreastalaí, bain úsáid as naisc mongo. Freastalaí, cliant, mongo is ainm do na seirbhísí.
Cliant VueJS
San fhillteán /cliant tá an feidhmchlár suite ar VueJS. Feidhmchlár cruthaithe le
FROM node:10
WORKDIR /client
COPY ./package*.json ./
RUN npm install
RUN npm install -g http-server
COPY . .
RUN npm run build
EXPOSE 8081
CMD ["npm", "test:dev"]
Tabhair faoi deara go ndéantar package.json a chóipeáil agus a shuiteáil ar leithligh ón gcuid eile de chomhaid an tionscadail. Déantar é seo le haghaidh feidhmíochta ionas go mbeidh inneachar an fhillteáin /node_modules i dtaisce nuair a atógtar é. Tá gach líne ordaithe i dtaisce ar leithligh.
Ag an deireadh, nuair a thosaíonn an coimeádán, déantar an t-ordú a fhorghníomhú npm run dev
. Déantar cur síos ar an ordú seo i package.json:
"scripts": {
"test:dev": "http-server dist -p 8081 -c 1 --push-state"
}
Chun comhaid a rith ó fhillteán /dist, socraithe go domhanda http-server
, agus i bpacáiste dev-spleáchais spa-http-server
le go n-oibreoidh an Ródaire Vue i gceart. Atreoraíonn an bhratach --push-state chuig index.html. Tá an bhratach -c ar a bhfuil luach 1 soicind curtha leis http freastalaí níor taisceadh scripteanna. Is sampla tástála é seo, ar thionscadal fíor tá sé níos fearr nginx a úsáid.
Cruthaigh réimse sa siopa Vuex apiHost: 'http://localhost:3000'
, áit a bhfuil an port NodeJS Api scríofa. Tá an chuid cliant réidh. Anois téann gach iarratas ón gcliant chuig an gceann cúil chuig an url seo.
API Freastalaí NodeJS
San fhillteán /server
chruthú freastalaí.js agus Dockerfile:
FROM node:10
WORKDIR /server
COPY ./package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
В freastalaí.js léirithe url le haghaidh bunachar sonraí const url = 'mongodb://mongo:27017/';
. Ceadaímid iarratais tras-fearainn ón gcliant:
const clientUrl = 'http://localhost:8081';
const corsOptions = {
origin: clientUrl,
optionsSuccessStatus: 200, // some legacy browsers (IE11, various SmartTVs) choke on 204
};
app.use(cors());
app.all('/*', (req, res, next) => {
res.header('Access-Control-Allow-Origin', clientUrl);
res.header('Access-Control-Allow-Headers', 'X-Requested-With');
next();
});
app.get('/getProducts', cors(corsOptions), (req, res) => {
products.getContent
.then(data => res.json(data), err => res.json(err));
});
app.get('/getUsers', cors(corsOptions), (req, res) => {
db.getUsers()
.then(data => res.json(data), err => res.json(err));
});
Conclúid
Anois téigh go dtí an eolaire tionscadail agus a reáchtáil docker-compose build
le haghaidh íomháithe agus docker-compose up
chun coimeádáin a rith. Ardóidh an t-ordú 3 choimeádán: freastalaí, cliant, mongo. Maidir le freastalaí NodeJS, is féidir leat te-athlódáil a chumrú trína nascadh leis an bhfillteán úsáideora. Agus tá an cliant á fhorbairt a reáchtáil go háitiúil le athlódáil te, ag rith ar leithligh freastalaí и Mongo. Chun tús a chur le seirbhís ar leith, sonraigh a ainm docker-compose up client
. Ná déan dearmad é a dhéanamh uaireanta prune
agus coimeádáin (coimeádáin), líonraí (líonraí) agus íomhánna (íomhánna) a bhaint chun acmhainní a shaoradh.
Is féidir leat an cód iomlán a fheiceáil
Foinse: will.com