본문 바로가기
리눅스/Part1. Ch04. 웹 어플리케이션 컨테이너화

06. (실습) 앱 컨테이너화 - 디버깅 환경 구성

by Engineer-Lee 2022. 12. 7.
반응형

1. t2 small로 Scale UP

2. 도커 플러그인 설치 
docker, python

3. 디버그용 docker compose 작성
vim docker-compose.debug.yml 

"""
version: "3"
   
services:
  db:
    image: postgres
    volumes:
      - poll-db-volume:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=poll
      - POSTGRES_USER=fast
      - POSTGRES_PASSWORD=1234qwer

  app:
    #image: poll_app
    build:
      context: .
      dockerfile: ./Dockerfile
    command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000 --nothreading --noreload"]
    ports:
      - 8000:8000
      - 5678:5678
    volumes:
      - ./:/app
    environment:
      - POSTGRES_DB=poll
      - POSTGRES_USER=fast
      - POSTGRES_PASSWORD=1234qwer
      - POSTGRES_HOST=db
    depends_on:
      - db
    
  web:
    image: poll_web
    ports:
      - "80:80"
    depends_on:
      - app

volumes:
  poll-db-volume:
    external: true
    name:
      poll-db-volume
"""

4. 디버그를 위한 Visual Studio 셋팅 추가
vim .vscode/launch.json
"""
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Remote Attach",
      "type": "python",
      "request": "attach",
      "port": 5678,
      "host": "localhost",
      "pathMappings": [
          {
              "localRoot": "/home/ubuntu/projects/Django-Poll-App",
              "remoteRoot": "/usr/src/app"
          }
      ]
    }
  ]
}
"""

5. Docker compose 실행
docker-compose -f docker-compose.debug.yml up -d --build

6. VS code에서 디버깅 정보 확인

7. 코드 반영 내용 실시간 확인을 위한 구성 
vim docker-compose.debug.yml 
# 기존 
# command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000 --nothreading --noreload"]

# 변경
"""
...
command: ["sh", "-c", "pip install debugpy -t /tmp && python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 manage.py runserver 0.0.0.0:8000 --nothreading"]
...
"""

8. 새로운 설정 적용
docker-compose -f docker-compose.debug.yml up -d --build


9. 실시간 반영 정보 확인 위해 poll 리스트의 pagination 갯수 변경
vim polls/views.py

"""
# 기존 (라인 6)
# paginator = Paginator(all_polls, 6)  # Show 6 contacts per page 

# 변경
paginator = Paginator(all_polls, 3)  # Show 6 contacts per page 
"""

10. 브라우저에서 Poll 리스트 갯수 확인 

반응형