Sign inSign up

seungchan1122/sportsmate-backend

By seungchan1122

Updated about 2 months ago

Image
0

106

seungchan1122/sportsmate-backend repository overview

SportsMate Backend

SportsMate의 Flask API 서버를 Gunicorn으로 실행하는 Docker 이미지입니다.

함께 사용하는 프론트엔드 이미지는
seungchan1122/sportsmate-frontend에서 확인할 수 있습니다.

구성

  • Python 3.12
  • Flask
  • Gunicorn
  • SQLAlchemy
  • PostgreSQL
  • Supabase

컨테이너 내부에서는 Gunicorn이 Flask 애플리케이션을 5000번 포트로 실행합니다.

이미지 받기

docker pull seungchan1122/sportsmate-backend:1.0

환경변수

백엔드 실행 전 .env 파일을 준비해야 합니다.

DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DATABASE?sslmode=require

실제 프로젝트에서는 데이터베이스 연결 정보 외에도 인증 키와 외부 API 설정 등이 필요할 수 있습니다.

환경변수 파일은 이미지에 포함하지 않고 컨테이너 실행 시 전달합니다.

--env-file ./backend/.env

.env 파일은 Git 저장소에 커밋하지 않습니다.

단독 실행

docker run -d \
  --name sportsmate-backend \
  --restart unless-stopped \
  --env-file ./backend/.env \
  -p 5001:5000 \
  seungchan1122/sportsmate-backend:1.0

macOS에서는 AirPlay Receiver가 5000번 포트를 사용하는 경우가 있어 호스트 포트를 5001로 연결했습니다.

localhost:5001 → container:5000

프론트엔드와 함께 실행

먼저 Docker 네트워크를 생성합니다.

docker network create sportsmate-network

백엔드 컨테이너를 실행합니다.

docker run -d \
  --name sportsmate-backend \
  --network sportsmate-network \
  --network-alias backend \
  --restart unless-stopped \
  --env-file ./backend/.env \
  -p 5001:5000 \
  seungchan1122/sportsmate-backend:1.0

프론트엔드 컨테이너를 실행합니다.

docker run -d \
  --name sportsmate-frontend \
  --network sportsmate-network \
  --restart unless-stopped \
  -p 5002:80 \
  seungchan1122/sportsmate-frontend:1.0

--network-alias backend는 프론트엔드 Nginx가 백엔드 컨테이너를 다음 주소로 찾을 수 있게 합니다.

http://backend:5000

헬스 체크

백엔드 직접 요청:

curl -i http://localhost:5001/api/health

정상 응답:

{
  "status": "ok"
}

프론트엔드 Nginx를 경유한 요청:

curl -i http://localhost:5002/api/health

두 요청이 모두 200 OK를 반환하면 컨테이너 간 연결도 정상입니다.

라우트 확인

docker exec sportsmate-backend \
  flask --app run routes

로그 확인

docker logs --tail 100 sportsmate-backend

실시간 로그:

docker logs -f sportsmate-backend

컨테이너 상태 확인

docker ps

컨테이너 재시작

docker restart sportsmate-backend

컨테이너 삭제

docker rm -f sportsmate-backend

관련 이미지

Tag summary

Content type

Image

Digest

sha256:f44f93ab1

Size

160.5 MB

Last updated

about 2 months ago

docker pull seungchan1122/sportsmate-backend:1.0