• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

GCP에서 Docker 작업 질문입니다!

20.06.03 12:42 작성 조회수 186

1

박사님~~ 연속으로 질문을 올리네요 ^^;; 구글 클라우드에 Docker 형태로 올리는 것을 테스트 해보고 있는데, 아래와 같이 test.py와 dockerfile 을 만들어서 GCP에 이미지 생성 후 컨테이너 생성을 했는데 실서버로 들어가도 test.py에 적어둔 문구가 안뜨고 아래와 같은 문구가 뜹니다 ㅠ 뭐가 잘못되었을까요??

1. test.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return "welcome"

if __name__=="__main__":

    app.run(host="34.64.117.66")  -> 여기에 기존 0.0.0.0이 아닌 GCP의 외부 IP를 넣는게 맞을까요?

2. Dockerfile

FROM tiangolo/uwsgi-nginx-flask:python3.7

RUN pip install --upgrade pip
RUN pip install flask

COPY . /app
WORKDIR /app

3. 두개의 파일을 올린 후

4. 이미지 생성

docker build -t test .

5. 컨테이너 생성

docker run -d --name myweb --net myweb-network -p 80:80 myweb

-> 여기까지에서 Portainer에서 이미지 생성 및 컨테이너 생성이 잘 된 것을 확인하였습니다. 그리고 나서 브라우져에 외부 IP 주소를 넣고 접속하니 welcome이 드지 않고 아래와 같은 문구가 뜹니다.

Hello World from Flask in a uWSGI Nginx Docker container with Python 3.7 (default)

어떤 부분이 문제일까요?? 인터넷으로 아무리 찾아보고 이것저것 시도를 해봐도 제 레벨에는 한계가 있는 것 같아 질문으로 남깁니다. 항상 감사합니다!

답변 1

답변을 작성해보세요.

0

Hello World from Flask in a uWSGI Nginx Docker container with Python 3.7 (default)

위의 메세지가 뜨는걸로 봐서는 Nginx + python 도커가 정상적으로 구동중인걸로 보입니다. 그러나 도커 내의 기본설정 python 파일이 그대로 실행되는걸로 보입니다. 이 말은 test.py가 실행되는게 아니라 도커내에 디폴트로 설정된 파일이 구동되고 있다는 이야기 입니다. 해당 도커가 사용하는 기본파일명으로 test.py 의 파일명을 교체하셔야 할 부분으로 보입니다.

https://github.com/tiangolo/uwsgi-nginx-flask-docker

위의 링크가 해당 도커 파일의 깃헙 페이지인데 사용방법을 보시면 더 자세한 내용이 있습니다. 영어로 나오기는 하나 구글번역기 정도만 되도 어느정도 해석 가능하시리라 생각 됩니다.

퀵 스타트 내용에 보면 위의 박스처럼 main.py 파일이 기본 파일로 되어있기 때문에 위의 test.py 파일이 main.py로 되어야 도커가 실행될때 수행이 되게 됩니다. test.py 파일명을 그대로 사용하려면 도커 자체를 수정해야 하기 때문에 추천드리진 않습니다. ^^;;