티스토리 뷰
지난번 예제파일을 가지고 웹서버를 구축해보았다. 이번에는 개인적으로 작성한 플라스크 코드를 웹서버에 올리고 이미지 push까지 해보자.
디렉토리 구성하기
먼저 폴더 경로를 동일하게 만들어준다.
예제 경로는 다음과 같았다.
.
├── app
│ └── main.py
│ └── uwsgi.ini
│ └── static
│ └── index.html
│ └── app
└── Dockerfile
└── docker-compose.yml
└── docker-compose.override.yml
개인 프로젝트 경로도 이처럼 yml파일과 ini파일을 그대로 복사해서 옮겼다.
첫번째사진처럼 디렉토리를 구성하고 app폴더를 누르면 다음과 같이 나온다. .vscode, service,run.py폴더는 vscode에서 따로 작성한 폴더를 통째로 들고온거다. 여기에 uwsgi.ini을 넣어주고 docker-compose.override.yml 의 FLASK_APP=main.py 을 run.py로 변경했다.
이미지 build
hhhimage라는 이름으로 이미지를 빌드했다
$ docker build -t hhhimage
그럼 이제 컨테이너를 생성할텐데 코드 수정한 것을 바로 반영해서 보기위해서는 아래와 같은 커멘드를 입력하자.
$ docker run -d --name hhhcontainer -p 312:80 -v $(pwd)/app:/app -e FLASK_APP=run.py -e FLASK_DEBUG=1 hhhimage flask run --host=0.0.0.0 --port=80
이후 docker start를 하였지만 실행되지않는데 이유는 내 코드에서 필요한 라이브러리가 없기때문이었다. 그럼 도커에 라이브러리를 설치하면 된다.
도커에 접속하는 방법은
$ docker exec -it hhhcontainer /bin/bash
접속해서 pip install 라이브러리명 을 써주면된다
이미지 push
그럼 이제 컨테이너 생성까지했으니 이미지를 push해주자. push한다는 것은 도커허브의 개인저장소에 올린다는 의미이다. 이미지와 컨테이너는 클래스와 인스턴스의 관계라고 생각하면 된다. 따라서 컨테이너를 push하는 것이아니라 이미지를 push한다. 그런데 혹시 이미지에 tag가 없다면 tag를 달아주어야한다.
$ docker image tag hhhimg hhhh8/hhhimg:ver1.0 # 예시
hhhh8은 본인 도커허브의 계정 아이디를 쓰면된다. tag까지 달았다면 이제 push가 가능하다
$ docker push hhhh8/hhhimg:ver1.0
끄읕-
'Python > Flask' 카테고리의 다른 글
Flask 기초코드7줄 알아보기 (0) | 2018.10.30 |
---|