Dị ka ị nwere ike ịghọta site na isiokwu gara aga, arụrụ m ọrụ dị iche iche. Ụbọchị mbụ n'ime otu ọhụrụ na-emekarị otu ụzọ ahụ: onye na-azụ ya na-anọdụ ala na m ma na-eme ihe anwansi iji wụnye na ibuga ngwa ahụ. Docker dị mkpa maka ndị mmepe n'ihu n'ihi na ... A na-edekarị azụ azụ n'ọtụtụ dị iche iche nke PHP / Java / Python / C #, na n'ihu adịghị mkpa ịdọpụ azụ azụ mgbe ọ bụla iji wụnye na ibuga ihe niile. Naanị n'otu ebe ka ahụrụ m nchikota Docker-Jenkins yana ntinye n'ụzọ doro anya, ndekọ ndekọ na ule akpaghị aka.
Edela ọtụtụ akụkọ zuru ezu gbasara Docker. Edemede a ga-ekwu maka ibuga ngwa otu ibe site na iji VueJS/Vue Router, akụkụ nkesa dị n'ụdị API RESTful nwere NodeJS, a na-ejikwa MongoDB dị ka nchekwa data. A na-eji Docker Compose kọwaa ma mee ọtụtụ ngwa akpa.
Kedu ihe kpatara ịchọrọ Docker?
Docker na-enye gị ohere ịmegharị usoro nke ibuga ngwa. Onye nrụpụta ahụ adịkwaghị mkpa ịwụnye mmemme n'onwe ya ma ọ bụ na-ahụ maka enweghị ndakọrịta ụdị na igwe ya. Ihe niile ị ga - eme bụ ịwụnye Docker wee pịnye iwu 1-2 n'ime njikwa. Ụzọ kachasị mma iji mee nke a bụ na Linux.
Na-amalite
Wụnye
Ọdịdị nchekwa
Anyị na-emepụta nchekwa 2 maka ngwa ahịa na nkesa. Otu faịlụ nwere ndọtị .yml bụ nhazi Docker Dezie, ebe a na-akọwapụta ngwa ngwa ma jikọta ya.
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
Anyị na-emepụta ọrụ 3 na Docker: maka NodeJS, MongoDB na maka ndị kwụ ọtọ na Vue. Agbakwunyere iji jikọọ onye ahịa na nkesa dabere na ihe nkesa. Iji jikọta MongoDB na API nkesa, jiri njikọ mongo. Ihe nkesa, onye ahịa, mongo - aha ọrụ.
VueJS ahịa
Na nchekwa / onye ahịa Ngwa a dabere na VueJS. Emepụtara ngwa a site na iji
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"]
Biko mara na a na-edepụtaghachi ma tinye ngwugwu package.json iche na faịlụ ọrụ ndị ọzọ. Emere nke a maka ịrụ ọrụ, nke mere na a na-echekwa ọdịnaya nke folda / node_modules mgbe arụrụ ya ọzọ. A na-echekwa ahịrị iwu ọ bụla iche iche.
N'ikpeazụ, mgbe akpa ahụ malitere, a na-eme iwu ahụ npm run dev
. A kọwara iwu a na ngwugwu.json:
"scripts": {
"test:dev": "http-server dist -p 8081 -c 1 --push-state"
}
Iji mee faịlụ site na folda /dist, arụnyere n'ụwa niile http-server
, na na dev-dependencies ngwugwu spa-http-server
nke mere na Vue Router na-arụ ọrụ nke ọma. Ọkọlọtọ --push-state na-atụgharị gaa na index.html. Agbakwunyere ọkọlọtọ -c nwere uru nke 1 sekọnd http-ihe nkesa emeghị cache scripts. Nke a bụ ihe atụ nnwale; na ezigbo ọrụ ọ ka mma iji nginx.
Na Vuex ụlọ ahịa anyị na-emepụta ubi apiHost: 'http://localhost:3000'
, ebe edebanyere ọdụ ụgbọ mmiri NodeJS Api. Akụkụ ndị ahịa dị njikere. Ugbu a arịrịọ niile sitere n'aka onye ahịa gaa n'azụ gaa na url a.
API sava NodeJS
Na nchekwa /server
mepụta nkesa na Dockerfile:
FROM node:10
WORKDIR /server
COPY ./package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
В nkesa egosi url maka nchekwa data const url = 'mongodb://mongo:27017/';
. Na-enye ohere ịrịọ ngalaba n'ofe nke onye ahịa:
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));
});
nkwubi
Ugbu a, ka anyị gaa na ndekọ ndekọ ọrụ wee gbaa ọsọ docker-compose build
maka ịrụ ihe oyiyi na docker-compose up
na-agba ọsọ containers. Otu a ga-ebuli arịa atọ: ihe nkesa, onye ahịa, mongo. Maka ihe nkesa NodeJS, ị nwere ike hazie ibugharị ọkụ site na ijikọ ya na nchekwa onye ọrụ. Na onye ahịa nọ n'okpuru mmepe kwesịrị ịmalite na mpaghara ya na-ebugharị ọkụ, na-agba ọsọ iche server и Mongo. Ka ịmalite ọrụ dị iche, naanị ezipụta aha ya docker-compose up client
. Echefula ime ya mgbe ụfọdụ prune
na ihichapụ akpa, netwọkụ na onyonyo iji wepụta akụrụngwa.
Ị nwere ike ịhụ koodu zuru ezu
isi: www.habr.com