본문 바로가기
App Programming/AWS

[AWS] 도커 컴포즈 배포

by goatlab 2024. 6. 11.
728x90
반응형
SMALL

도커 컴포즈 (Docker Compose)

 

도커 컴포즈 (docker compose)는 여러 개의 컨테이너를 가동할 때 사용하는 도커 어플리케이션이다. 도커 컴포즈를 사용하기 위해 docker-compose.yml이라는 YAML 파일을 사용한다.

 

sudo apt-get update
sudo apt-get install docker-compose-plugin
docker compose version

 

flasktest 디렉토리

 

vim requirements.txt
scikit-learn==1.5.0
flask==3.0.3
psycopg2==2.9.9
gunicorn==22.0.0
vim Dockerfile
FROM python:3.11.9

WORKDIR /usr/src/app

COPY . .

RUN python -m pip install --upgrade pip
RUN pip install -r requirements.txt

WORKDIR ./myapp

CMD gunicorn main:app --bind 0.0.0.0:5000

EXPOSE 5000

 

nginx 디렉토리

 

vim default.conf
server{
	listen 80;
	server_name localhost;
	
    location /{
    	proxy_pass http://flasktest:5000;
	}
}

 

vim Dockerfile
FROM nginx:1.26.0

RUN rm /etc/nginx/conf.d/default.conf

COPY default.conf /etc/nginx/conf.d/

CMD ["nginx", "-g", "daemon off;"]

 

docker-compose.yml 작성

 

docker 디렉토리에서 도커 컴포즈를 작성한다.

 

vim docker-compose.yml
services:
	flasktest:
		build: ./flaskapp
		networks:
			- composenet01
		restart: always

	nginxtest:
		build: ./nginxtest
		networks:
			- composenet01
		ports:
			- "80:80"
		depends_on:
			- flasktest
networks:
	composenet01:

 

도커 이미지 빌드 및 컨테이너 가동

 

docker compose up -d --build

 

 docker container ls
 docker network ls

 

접속 확인

 

기본 포트가 80이므로 입력하지 않아도 된다.

 

# window
curl -d "{""input"":[""0.3""]}" -H "Content-Type: application/json" -X POST http://퍼블릭 IP/predict

# mac
curl -d '{"input":["0.3"]}' -H "Content-Type: application/json" -X POST http://퍼블릭 IP/predict

 

컨테이너 정지

 

docker compose down

728x90
반응형
LIST

'App Programming > AWS' 카테고리의 다른 글

[AWS] 도커 PostgreSQL 배포  (0) 2024.06.11
[AWS] 도커 컨테이너 nginx 배포  (0) 2024.06.11
[AWS] 도커 컨테이너 배포  (0) 2024.06.11
[AWS] Flask에 PostgreSQL 적용  (0) 2024.05.31
[AWS] PostgreSQL 설치  (0) 2024.05.31