Old Branch

Docker와 Nginx, uwsgi를 사용해서 Flask App 만들기

woolbro 2020. 5. 29. 13:00
반응형

Docker - Nginx - uwsgi - Flask : with tiangolo's dockerfile

Using Docker, Buidl Flask App

Docker에 나의 Flask App 만들기

Set Up My Flask Project

Docker에 올릴 Flask앱을 먼저 만든다

  • Project Structure

      project_root_dir
      ├── Dockerfile
      ├── app
      │   └── main.py
      ├── requirements.txt
      └── venv
  • Activate Virtual Env

      $ virtualenv venv
      $ source venv/bin/activate
  • Install Flask & freeze my python package

      $ python3 -m pip install flask
        or
      $ pip3 install flask
  • main.py

      $ vim main.py
      #main.py
      from flask import Flask
    
      # the all-important app variable:
      app = Flask(__name__)
    
      @app.route("/")
      def hello():
          return "Oh, Hello World"
    
      if __name__ == "__main__":
              app.run(host='0.0.0.0', debug=True, port=80)
  • test run flask

      $ python3 main.py

Make a Dockerfile

docker 명령어를 실행할 수 있게 Dockerfile을 만들어 준다

  • Make a Dockerfile

    Dockerfile

      FROM tiangolo/uwsgi-nginx-flask:python3.6
    
      COPY requirements.txt /tmp/
    
      RUN pip install -U pip
      RUN pip install -r /tmp/requirements.txt
    
      COPY . /app
  • Docker build

      $ docker build -t test_flask_app .
  • Docker run

      $ docker run -p 80:80 -t test_flask_app
      $ docker run -e ENV='development' -p 80:80 -t test_flask_app


    Docker run 시에 -e 옵션으로 환경변수를 주어 dev/prod 환경을 구분할 수 있다.