불친절한 블로그

[Docker] API/WEB server를 같이 띄우기 위한 Docker Compose 사용기 본문

Project/BLE 스마트미터

[Docker] API/WEB server를 같이 띄우기 위한 Docker Compose 사용기

오누! 2021. 2. 3. 17:20
반응형

기존에 git으로 진행중인 프로젝트를 Docker를 통해 API/WEB server를 띄워보고 싶어서

작업을 진행해보았다.

로컬에서 테스트 할 당시에는 Pycharm에서 API server와 WEB server 코드를 실행하고

브라우저를 통해 API 화면과 WEB 화면을 볼 수 있다.

 

프로젝트 구조는 아래의 이미지처럼 간단하게 구성되어 있다.

docker-compose는 프로젝트 폴더 위에 넣고 진행하였다.

 

프로젝트 구조

. home
├── ble_server
│   ├── web_device
│   │	├── web_app.py
│   │	├── Dockerfile
│   │	└── requirements.txt
│   ├── app.py
│   ├── Dockerfile
│   └── requirements.txt
└── docker-compose.yml

 

docker-compose.yml 파일을 작성해준다.

작성 양식은 공식홈페이지를 참고하면

쉽게 작성할 수 있다.

정확히 이해한것인지는 모르겠지만

도커 이미지를 만들기 위해서는 빌드를 해야 하고, api와 web 서버 이미지가 필요하기에

각각 build에 폴더를 지정해주고, 폴더 안에는 Dockerfile을 만들어주었다.

 

Dockerfile 또한 간단하게 작성하였다.

사용하는 라이브러리는 requirements.txt에 넣어두었고,

도커가 빌드를 하면서 Dockerfile을 찾아서 읽고, RUN 명령어를 통해

requirements.txt 안에 라이브러리를 찾아 설치해준다.

 

COPY 명령어를 통해서 폴더내에 파일들을 복사하고

EXPOSE 명령어로 포트 설정을 해준다.

CMD 명령어를 통해 Pycharm에서 코드 실행하는 것 처럼 코드를 실행해준다.

 

중간중간에 우여곡절이 많았지만

사이사이에 발생한 이슈사항은 따로 정리하고

 

cmd창을 띄워서 docker-compose up을 실행하면 API/WEB server가 같이 돌아가는 것을 확인할 수 있다.

$ docker-compose up

 

 

반응형
Comments