เชกเซ‹เช•เชฐเชฎเชพเช‚ VueJS + NodeJS + MongoDB เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซ‡เช•เซ‡เชœ เช•เชฐเชตเซ€

เชกเซ‹เช•เชฐเชฎเชพเช‚ VueJS + NodeJS + MongoDB เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซ‡เช•เซ‡เชœ เช•เชฐเชตเซ€
เชœเซ‡เชฎ เชคเชฎเซ‡ เช…เช—เชพเช‰เชจเชพ เชฒเซ‡เช–เชฎเชพเช‚เชฅเซ€ เชธเชฎเชœเซ€ เชถเช•เซ‹ เช›เซ‹, เชฎเซ‡เช‚ เชตเชฟเชตเชฟเชง เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เชชเชฐ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เชจเชตเซ€ เชŸเซ€เชฎเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เชฆเชฟเชตเชธเซ‹ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช เชœ เชฐเซ€เชคเซ‡ เชœเชพเชฏ เช›เซ‡: เชฌเซ‡เช•เชเชจเซเชกเชฐ เชฎเชพเชฐเซ€ เชธเชพเชฅเซ‡ เชฌเซ‡เชธเซ‡ เช›เซ‡ เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ เชœเชฎเชพเชตเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชœเชพเชฆเซเชˆ เช•เซเชฐเชฟเชฏเชพเช“ เช•เชฐเซ‡ เช›เซ‡. เชซเซเชฐเชจเซเชŸ-เชเชจเซเชก เชกเซ‡เชตเชฒเชชเชฐเซเชธ เชฎเชพเชŸเซ‡ เชกเซ‹เช•เชฐ เช…เชจเชฟเชตเชพเชฐเซเชฏ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡... เชฌเซ‡เช•เชเชจเซเชก เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡ PHP/Java/Python/C# เชธเซเชŸเซ‡เช•เซเชธเชจเซ€ เชตเชฟเชถเชพเชณ เชถเซเชฐเซ‡เชฃเซ€เชฎเชพเช‚ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชซเซเชฐเชจเซเชŸเซ‡ เชฆเชฐเซ‡เช• เชตเช–เชคเซ‡ เชฌเชงเซเช‚ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ‡เช•เชเชจเซเชกเชจเซ‡ เชตเชฟเชšเชฒเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชฎเชพเชคเซเชฐ เชเช• เชœ เชœเช—เซเชฏเชพเช เชฎเซ‡เช‚ เชชเชพเชฐเชฆเชฐเซเชถเช• เชœเชฎเชพเชตเชŸ, เชฒเซ‰เช—เซเชธ เช…เชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชธเชพเชฅเซ‡ เชกเซ‹เช•เชฐ-เชœเซ‡เชจเช•เชฟเชจเซเชธเชจเซเช‚ เชธเช‚เชฏเซ‹เชœเชจ เชœเซ‹เชฏเซเช‚.

เชกเซ‹เช•เชฐ เชตเชฟเชถเซ‡ เช˜เชฃเชพ เชตเชฟเช—เชคเชตเชพเชฐ เชฒเซ‡เช–เซ‹ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เช›เซ‡. เช† เชฒเซ‡เช– VueJS/Vue เชฐเชพเช‰เชŸเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฟเช‚เช—เชฒ เชชเซ‡เชœ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชตเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเชถเซ‡, เชธเชฐเซเชตเชฐเชจเซ‹ เชญเชพเช— NodeJS เชธเชพเชฅเซ‡ RESTful API เชจเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เช›เซ‡, เช…เชจเซ‡ MongoDB เชจเซ‹ เชกเซ‡เชŸเชพเชฌเซ‡เช เชคเชฐเซ€เช•เซ‡ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡. เชกเซ‹เช•เชฐ เช•เช‚เชชเซ‹เชเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฌเชนเซเชตเชฟเชง เช•เชจเซเชŸเซ‡เชจเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฅเชพเชฏ เช›เซ‡.

เชคเชฎเชพเชฐเซ‡ เชกเซ‹เช•เชฐเชจเซ€ เช•เซ‡เชฎ เชœเชฐเซ‚เชฐ เช›เซ‡?

เชกเซ‹เช•เชฐ เชคเชฎเชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชกเซ‡เชตเชฒเชชเชฐเชจเซ‡ เชนเชตเซ‡ เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เชชเชฐ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เช…เชฅเชตเชพ เชคเซ‡เชจเชพ เชฎเชถเซ€เชจ เชชเชฐ เชธเช‚เชธเซเช•เชฐเชฃเชจเซ€ เช…เชธเช‚เช—เชคเชคเชพ เชธเชพเชฅเซ‡ เชตเซเชฏเชตเชนเชพเชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เชกเซ‹เช•เชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚ 1-2 เช†เชฆเซ‡เชถเซ‹ เชฒเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เช•เชฐเชตเชพเชจเซ€ เชธเซŒเชฅเซ€ เช…เชจเซเช•เซ‚เชณ เชฐเซ€เชค Linux เชชเชฐ เช›เซ‡.

เชถเชฐเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเซ‹ Docker เช…เชจเซ‡ เชกเซ‹เช•เชฐ เช•เช‚เชชเซ‹เช

เชซเซ‹เชฒเซเชกเชฐ เชฎเชพเชณเช–เซเช‚

เช…เชฎเซ‡ เช•เซเชฒเชพเชฏเช‚เชŸ เช…เชจเซ‡ เชธเชฐเซเชตเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ 2 เชซเซ‹เชฒเซเชกเชฐเซเชธ เชฌเชจเชพเชตเซ€เช เช›เซ€เช. .yml เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชธเชพเชฅเซ‡เชจเซ€ เชซเชพเช‡เชฒ เชเช• เชฐเซ‚เชชเชฐเซ‡เช–เชพ เช›เซ‡ เชกเซ‹เช•เชฐ เช•เช‚เชชเซ‹เช, เชœเซเชฏเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เชจเซเชŸเซ‡เชจเชฐ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช…เชจเซ‡ เชธเช‚เช•เชณเชพเชฏเซ‡เชฒ เช›เซ‡.
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

เช…เชฎเซ‡ เชกเซ‹เช•เชฐเชฎเชพเช‚ 3 เชธเซ‡เชตเชพเช“ เชฌเชจเชพเชตเซ€เช เช›เซ€เช: NodeJS, MongoDB เช…เชจเซ‡ Vue เชฎเชพเช‚ เชธเซเชฅเชฟเชฐ เชธเซ‡เชตเชพเช“ เชฎเชพเชŸเซ‡. เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ‡ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชฎเซ‡เชฐเซเชฏเซเช‚ เชธเชฐเซเชตเชฐ เชชเชฐ เช†เชงเชพเชฐ เชฐเชพเช–เซ‡ เช›เซ‡. MongoDB เชจเซ‡ เชธเชฐเซเชตเชฐ API เชธเชพเชฅเซ‡ เชฒเชฟเช‚เช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เชฒเชฟเช‚เช•เซเชธ เชฎเซ‹เช‚เช—เซ‹. เชธเชฐเซเชตเชฐ, เช•เซเชฒเชพเชฏเช‚เชŸ, เชฎเซ‹เช‚เช—เซ‹ - เชธเซ‡เชตเชพเช“เชจเชพเช‚ เชจเชพเชฎ.

VueJS เช•เซเชฒเชพเชฏเช‚เชŸ

เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ /เช—เซเชฐเชพเชนเช• เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ VueJS เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ Vue Cli. เช›เชฌเซ€ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เช•เซเชฒเชพเชฏเช‚เชŸ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชธเซเชฅเชฟเชฐ เชซเชพเช‡เชฒเซ‹เชจเชพ เชธเชฎเซ‚เชนเชฎเชพเช‚ เชฌเชจเซ‡เชฒเซ€ เช›เซ‡ /เชœเชฟ. เชกเซ‹เช•เชฐเชซเชพเช‡เชฒ เช‡เชฎเซ‡เชœ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช†เชฆเซ‡เชถเซ‹เชจเชพ เชธเชฎเซ‚เชนเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡:

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"]

เชฎเชนเซ‡เชฐเชฌเชพเชจเซ€ เช•เชฐเซ€เชจเซ‡ เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ package.json เช เชฌเชพเช•เซ€เชจเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชซเชพเช‡เชฒเซ‹เชฅเซ€ เช…เชฒเช—เชฅเซ€ เช•เซ‰เชชเชฟ เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒ เช›เซ‡. เช† เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชฅเซ€ /node_modules เชซเซ‹เชฒเซเชกเชฐเชจเชพเช‚ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹ เชซเชฐเซ€เชฅเซ€ เชฌเชฟเชฒเซเชก เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช•เซ‡เชถ เชฅเชพเชฏ. เชฆเชฐเซ‡เช• เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เช…เชฒเช—เชฅเซ€ เช•เซ‡เชถ เชฅเชฏเซ‡เชฒ เช›เซ‡.

เช›เซ‡เชฒเซเชฒเซ‡, เชœเซเชฏเชพเชฐเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ npm run dev. เช† เช†เชฆเซ‡เชถ เชชเซ‡เช•เซ‡เชœ.json เชฎเชพเช‚ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡:


"scripts": {
	 "test:dev": "http-server dist -p 8081 -c 1 --push-state"
}

เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚เชฅเซ€ เชซเชพเช‡เชฒเซ‹ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ /เชœเชฟ, เชตเซˆเชถเซเชตเชฟเช• เชธเซเชคเชฐเซ‡ เชธเซเชฅเชพเชชเชฟเชค http-server, เช…เชจเซ‡ เชกเซ‡เชต-เชกเชฟเชชเซ‡เชจเซเชกเชจเซเชธเซ€เชฎเชพเช‚ เชชเซ‡เช•เซ‡เชœ spa-http-serverเชœเซ‡เชฅเซ€ Vue เชฐเชพเช‰เชŸเชฐ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡. --push-state เชซเซเชฒเซ‡เช— index.html เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเซ‡ เช›เซ‡. 1 เชธเซ‡เช•เชจเซเชกเชจเชพ เชฎเซ‚เชฒเซเชฏ เชธเชพเชฅเซ‡ -c เชงเซเชตเชœ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ http-เชธเชฐเซเชตเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซ‹ เช•เซ‡เชถ เช•เชฐเซ€ เชจเชฅเซ€. เช† เชเช• เชชเชฐเซ€เช•เซเชทเชฃ เช‰เชฆเชพเชนเชฐเชฃ เช›เซ‡; เชตเชพเชธเซเชคเชตเชฟเช• เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชชเชฐ nginx เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชตเชงเซ เชธเชพเชฐเซเช‚ เช›เซ‡.

Vuex เชธเซเชŸเซ‹เชฐเชฎเชพเช‚ เช…เชฎเซ‡ เชเช• เช•เซเชทเซ‡เชคเซเชฐ เชฌเชจเชพเชตเซ€เช เช›เซ€เช apiHost: 'http://localhost:3000', เชœเซเชฏเชพเช‚ NodeJS Api เชชเซ‹เชฐเซเชŸ เชฐเชœเซ€เชธเซเชŸเชฐ เชฅเชฏเซ‡เชฒ เช›เซ‡. เช—เซเชฐเชพเชนเช• เชญเชพเช— เชคเซˆเชฏเชพเชฐ เช›เซ‡. เชนเชตเซ‡ เช•เซเชฒเชพเชฏเชจเซเชŸเชจเซ€ เชชเชพเช›เชณเชจเซ€ เชฌเชงเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เช† url เชชเชฐ เชœเชพเชฏ เช›เซ‡.

เชจเซ‹เชกเชœเซ‡เชเชธ เชธเชฐเซเชตเชฐ API

เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ /server เชฌเชจเชพเชตเซ‹ เชธเชฐเซเชตเชฐ.เชœเซ‡เชเชธ เช…เชจเซ‡ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒ:


FROM node:10
WORKDIR /server
COPY ./package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

ะ’ เชธเชฐเซเชตเชฐ.เชœเซ‡เชเชธ เชธเซ‚เชšเชตเซ‡เชฒ URL เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ const url = 'mongodb://mongo:27017/';. เช•เซเชฒเชพเชฏเช‚เชŸ เชคเชฐเชซเชฅเซ€ เช•เซเชฐเซ‹เชธ-เชกเซ‹เชฎเซ‡เชจ เชตเชฟเชจเช‚เชคเซ€เช“เชจเซ‡ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชตเซ€:


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));
  });

เชจเชฟเชทเซเช•เชฐเซเชท

เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเชฐ เชœเชˆเช เช…เชจเซ‡ เชฐเชจ เช•เชฐเซ€เช docker-compose build เช›เชฌเซ€เช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช…เชจเซ‡ docker-compose up เช•เชจเซเชŸเซ‡เชจเชฐ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡. เชŸเซ€เชฎ 3 เช•เชจเซเชŸเซ‡เชจเชฐ เช‰เชชเชพเชกเชถเซ‡: เชธเชฐเซเชตเชฐ, เช•เซเชฒเชพเชฏเช‚เชŸ, เชฎเซ‹เช‚เช—เซ‹. เชจเซ‹เชกเชœเซ‡เชเชธ เชธเชฐเซเชตเชฐ เชฎเชพเชŸเซ‡, เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชซเซ‹เชฒเซเชกเชฐ เชธเชพเชฅเซ‡ เชฒเชฟเช‚เช• เช•เชฐเซ€เชจเซ‡ เชนเซ‹เชŸ-เชฐเซ€เชฒเซ‹เชกเชจเซ‡ เช—เซ‹เช เชตเซ€ เชถเช•เซ‹ เช›เซ‹. เช…เชจเซ‡ เชกเซ‡เชตเชฒเชชเชฎเซ‡เชจเซเชŸ เชนเซ‡เช เชณเชจเชพ เช•เซเชฒเชพเชฏเช‚เชŸเชจเซ‡ เช…เชฒเช—เชฅเซ€ เชšเชพเชฒเชคเชพ เชนเซ‹เชŸ เชฐเซ€เชฒเซ‹เชก เชธเชพเชฅเซ‡ เชธเซเชฅเชพเชจเชฟเช• เชฐเซ€เชคเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช เชธเชฐเซเชตเชฐ ะธ เชฎเซ‹เช—เซ‹. เชเช• เช…เชฒเช— เชธเซ‡เชตเชพ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชซเช•เซเชค เชคเซ‡เชจเซเช‚ เชจเชพเชฎ เชธเซเชชเชทเซเชŸ เช•เชฐเซ‹ docker-compose up client. เช•เซเชฏเชพเชฐเซ‡เช• เชคเซ‡ เช•เชฐเชตเชพเชจเซเช‚ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚ prune เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เช–เชพเชฒเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ, เชจเซ‡เชŸเชตเชฐเซเช• เช…เชจเซ‡ เชˆเชฎเซ‡เชœเซ€เชธ เช•เชพเชขเซ€ เชจเชพเช–เชตเซเช‚.

เชคเชฎเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เช•เซ‹เชก เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเชœเซ เชตเชฟเช•เชพเชธ เชนเซ‡เช เชณ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹