Docker: NodeJs 및 MongoDb 서비스
따라하려면 도커와 노드가 설치되어 있어야 합니다.
오늘은 두 가지 서비스
NodeJs app with MongoDb
를 배포하는 방법을 알아보겠습니다.소스 코드 찾기here
의제
🎯 노드 프로젝트 설정
🎯 도커 설정
🎯 폴더 구조
🎯 코드 분석
프로젝트 시작
npm init -y
종속성 설치
npm i express dotenv mongoose
패키지.json
도커 설정
노드 및 몽고 이미지를 가져오려면 도커 허브로 이동하여 공식 이미지를 가져옵니다. click
도커 데몬이 켜져 있는지 확인하십시오. 데몬을 활성화하려면 도커 데스크탑을 클릭하십시오.
컴퓨터에 도커가 설치되어 있는지 확인하려면 터미널에서
docker --version
를 실행하십시오.풀 노드 이미지
몽고 이미지를 당겨
도커 이미지 확인
docker image ls
폴더 구조
다음은 가장 기본적인 아키텍처의 폴더 구조입니다.
코드 분류
🐋 데이터베이스 설정
이 구성 폴더에서 몽구스 모듈을 가져와서 데이터베이스에 연결하고 구성을 내보냈습니다.
⚠️ 참고:
docker-node-mongo
는 아무 이름이나 지정할 수 있습니다. mongo
:27017/docker-node-mongo에 주목하십시오. 이는 개발 모드에서 사용하는 localhost
를 대체합니다. 🐋 모델 및 스키마
여기에서 몽구스 라이브러리를 가져오고 사용자를 위한 새 스키마를 만듭니다.
🐋 경로
비즈니스 로직을 작성하고 익스프레스 라우터를 내보낸 후 기본 항목 파일에 마운트합니다
app.js
.🐋 .env
🐋 앱.js
const express = require('express');
const dotenv = require('dotenv');
dotenv.config();
const connectDb = require('./config/db');
const app = express();
connectDb();
const port = process.env.NODE_LOCAL_PORT || 3020;
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.get('/', (req, res) => {
res.send('Hello World');
});
app.use('/', require('./routes/user'));
app.listen(port, () => {
console.log(`Server is running on port ${port}`);
});
이제 다음 명령을 실행하여 앱을 로컬에서 테스트해 보겠습니다.
npm start
다음으로
Ctrl + C
를 실행하여 서버를 중지하겠습니다.도커 파일
The first line is the base image that we want to use.
The WORKDIR command is used to set the working directory for the container.
We copy the package.json file to the current directory.
We install our dependencies.The COPY command copies the contents of the current directory to the Dockerfile's context.
The EXPOSE command is used to expose ports to the outside world.
The CMD directive is used to specify the command that will be run when the image is run.
⚠️ We could actually go ahead to build this image using this Dockerfile by running the build command like
docker build -t [name of container]
and then run usingdocker run -p 8082:8082 [image name] ...
but it will not connect to the mongodb service. In other to be able to run the two services we need adocker-compose.yml
file
도커 작성 파일
마지막으로 앱 및 mongo 서비스용 docker-compose.yml을 설정합니다. 이 파일은 NodeJs 앱을 빌드하고 mongo 이미지에 연결하는 데 도움이 됩니다.
테스트
테스트하기 위해 다음 명령을 실행합니다.
docker-compose up -d
-d
플래그는 분리 모드에서 컨테이너를 실행 중임을 의미합니다.실행 중인 컨테이너를 확인하려면
두 개의 컨테이너가 실행되고 있는 것을 볼 수 있습니다.
브라우저로 이동해 보겠습니다.
POST 경로를 테스트합니다.
docker exec
명령을 사용하여 생성된 사용자를 확인합니다.실행 중인 컨테이너 확인
몽고 컨테이너에 입력
결론
이 게시물이 도움이 되었기를 바랍니다. 따라하는 동안 막히면 소스 코드에 대한 위 링크를 확인하십시오.
참조
Reference
이 문제에 관하여(Docker: NodeJs 및 MongoDb 서비스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/drsimplegraffiti/docker-with-mongodb-57g8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)