728x90
반응형
Node.js 서버 이미지
먼저 Node.js 서버 프로젝트를 만들어야한다.
npm install express
npm install ejs
// server.js
const express = require("express");
const app = express();
let router = require("./routes/main")(app);
app.set("views", __dirname + "/views");
app.set("view engine", "ejs");
app.engine("html", require("ejs").renderFile);
let server = app.listen(3000, () => {
console.log("Server Start!!");
});
// main.js
module.exports = (app) => {
app.get("/", (req, res) => {
res.render("index", {
title: "Express Page!!",
});
});
};
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= title %></title>
</head>
<body>
<h1><%= title %></h1>
<p>Express로 만들어진 페이지 입니다.</p>
</body>
</html>
이 다음은 Dockerfile을 작성하자
# 공식 Node.js 런타임 이미지를 베이스 이미지로 사용합니다
FROM node:18
# 컨테이너 내에서 작업 디렉토리를 설정합니다
WORKDIR /usr/src/app
# package.json과 package-lock.json 파일을 컨테이너로 복사합니다
COPY node-app/package*.json ./
# 앱의 의존성 패키지를 설치합니다
RUN npm install
# 나머지 애플리케이션 코드를 컨테이너로 복사합니다
COPY node-app/src ./src
# 앱이 실행되는 포트를 노출합니다
EXPOSE 3000
# 애플리케이션을 실행하는 커맨드를 설정합니다
CMD ["node", "src/server.js"]
이제 이미지를 빌드하자
docker build -t node-app .
빌드 된 이미지로 컨테이너를 실행하고 서버를 실행해보자.
docker run -p 3000:3000 -d node-app
- -p 옵션은 호스트와 컨테이너 간의 포트 맵핑을 설정한다. (호스트:컨테이너)
- -d 옵션은 컨테이너를 백그라운드에서 실행하도록 한다.
Flask 서버 이미지 만들기
먼저 Flask 서버를 만들어보자.
/
└─ src/
├─main.py/
└─ templates/
├─index.html/
from flask import Flask, render_template
main = Flask(__name__)
@main.route('/')
def index():
title = 'Flask Server With Docker'
return render_template('index.html', title=title)
if __name__ == '__main__':
main.run(host='0.0.0.0', port=5050)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Flask</title>
</head>
<body>
<h1>{{ title }}</h1>
</body>
</html>
# 공식 Python 런타임 이미지를 베이스 이미지로 사용
FROM python:3.9-alpine
# 컨테이너 내에서 작업 디렉토리를 설정합니다
WORKDIR /usr/src/app
# Flask 앱 코드를 컨테이너로 복사합니다
COPY src ./src
# requirements.txt를 컨테이너로 복사하고 필요한 패키지를 설치합니다
COPY requirements.txt ./
RUN pip install -r requirements.txt
# 앱이 실행되는 포트를 노출합니다
EXPOSE 5050
# 애플리케이션을 실행하는 커맨드를 설정합니다
CMD ["python", "src/main.py"]
이미지를 빌드하자.
docker build -t flask-app .
이미지를 사용해 컨테이너 실행.
728x90
반응형
'Container > Docker' 카테고리의 다른 글
[Docker] 도커 컴포즈(Docker Compose) (0) | 2023.08.21 |
---|---|
[Docker] 도커 이미지 PUSH, PULL (0) | 2023.08.08 |
[Docker] 도커 이미지 생성하기 (0) | 2023.07.27 |
[Docker] 기본적인 도커 클라이언트 명령어 (0) | 2023.07.27 |
[Docker] 도커 기본 개념 (0) | 2023.07.18 |