2022. 2. 6. 17:15ㆍ프로젝트/Just Site
맨날 서버 만들고 운용하기 싫어서
크롬 익스텐션으로 만들고 뭐시기 했는데
이젠 해야할 때가 아닐까
폴더 생성
다음의 커맨드를 순서대로 실행한다.
# 폴더 생성. 폴더가 이미 있다면 패스
mkdir just_site_backend
# 위치를 폴더 내부로 이동
cd just_site_backend
# node 초기화
npm init
# git 초기화
git init
다음과 같이 폴더가 생긴다.
Entry (진입점) 만들어주기
현재 package.json은 다음과 같다.
{
"name": "just_site_backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
}
}
main이 이 프로젝트의 진입점이라는 얘기다.
그리고 yarn start, npm start와 같은 스크립트를 실행하면,
"node index.js"가 실행된다는 것도 알 수 있다.
그러니까 index.js를 만들어주자.
const express = require('express');
const app = express();
const port = 3001;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
디렉토리는 다음과 같아진다.
코드 설명을 하자면,
- 포트는 3001번을 쓴다. (3000번은 프론트엔드 쓸거라서)
- '/'에 대해 GET 요청을 처리를 한다. "Hello World!"을 응답함
잊지 말아야 할 것 (패키지 추가)
호로록 넘어가긴 했지만 index.js의 첫 줄을 보자.
const express = require('express');
그렇다. 우리는 'express' 패키지가 없다.
없으면 뭐다? 추가해준다.
커맨드에 다음을 실행한다.
# npm으로 설치
npm install express
# yarn으로 설치
yarn add express
위와 같이 dependencies에 express가 추가되었다.
서버 실행하기
자, 서버 드 가자!
# 1. node로 스크립트 실행
node index.js
# 2. npm으로 실행.
npm start
# 3. yarn으로 실행
yarn start
셋 중에 하나를 선택하면 된다. 나는 yarn으로 패키지 관리를 하기 때문에
세번째 방법을 쓰겠다.
다음과 같이 3001번에서 서버가 돌아가고 있다.
여기서
- 서버를 끄고 싶다면 ctrl + c를 누르자.
- 이 상태로 커맨드 창을 쓰고 싶다면 커맨드 창을 하나 새로 열어야 한다.
서버 확인
자, 그러면 서버가 정상적으로 돌아가는지 확인해보자.
http://localhost:3001로 접속한다.
보다시피 서버가 메시지를 전송해주었다.
Docker 빌드하기
도커가 설치되었다는 가정하에, 폴더에 'Dockerfile' 파일을 생성한다. (대소문자 주의, 확장자 없음)
파일 안에 다음과 같이 작성한다.
FROM node:16-alpine
RUN apk add --no-cache python2 g++ make
WORKDIR /backend
COPY . .
RUN yarn install --production
CMD ["yarn", "start"]
컨테이너 내에서 /backend 디렉토리에 생성을 한다는 얘기다.
마지막 줄을 보면, 'yarn start'를 실행한다는 걸 알 수 있다.
이제 빌드를 해보자.
커맨드창에서 다음을 입력한다.
docker build -t just_site_backend .
현재 위치 (마지막 '.')의 내용을 빌드하고,
just_site_backend라는 태그를 붙인다는 얘기다.
Docker desktop의 'Images' 탭에 가보면 just_site_backend라는 이미지가 생긴 것을 확인할 수 있다.
Docker 컨테이너 실행
이제 이 이미지를 기반으로 컨테이너를 구동할 것이다.
다음의 커맨드를 실행한다.
docker run -dp 3001:3001 just_site_backend
이전 게시물에서도 설명했지만,
-d는 백그라운드에서 구동하기,
-p는 컨테이너의 포트를 호스트의 포트에 연결하는 것이다.
(단축 옵션들끼리는 합치는게 가능하다. -d + -p = -dp)
다음과 같이 실행이 되었다.
파란 글씨를 보면 'just_site_backend' 이미지를 기반으로 구동되었음을 알 수 있다.
Docker 서버 확인하기
위 오른쪽 아이콘중에 첫번째인 'OPEN IN BROWSER'를 클릭하거나,
인터넷 브라우저를 열어서 localhost:3001로 접속한다.
다음과 같이 잘 구동이 되고 있음을 확인하였다.
'프로젝트 > Just Site' 카테고리의 다른 글
[Just Site] 6. MYSQL과 서버 연결하기 (feat. Network) (0) | 2022.02.09 |
---|---|
[Just Site] 5. React에서 node.js로 요청보내기 (0) | 2022.02.06 |
[Just Site] 4. React 프로젝트 생성 (Feat. Docker) (0) | 2022.02.06 |
[Just Site] 2. Docker 사용하기 (0) | 2022.02.06 |
[Just Site] 1. 그냥 웹 페이지 만들기 (0) | 2022.02.06 |