Flask + Gunicorn 알파인 도커 빌드

Jmnote (토론 | 기여)님의 2021년 7월 8일 (목) 22:03 판 (새 문서: ==개요== ;Flask + Gunicorn 알파인 도커 빌드 {{소스헤더|app.py}} <syntaxhighlight lang='python'> from flask import Flask application = app = Flask(__name__) @app.route("...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요

Flask + Gunicorn 알파인 도커 빌드
app.py
from flask import Flask
application = app = Flask(__name__)

@app.route("/")
def hello_world():
    return "<p>Hello, World!</p>"

if __name__ == "__main__":
    app.run(host='0.0.0.0')
Dockerfile
FROM alpine:3.14
COPY . /app/
WORKDIR /app/
RUN apk add --no-cache py3-gunicorn py3-flask
CMD ["gunicorn","-w","4","--bind","0.0.0.0:5000","app"]

2 빌드

$ docker build -t gflask .Sending build context to Docker daemon  3.072kB
Step 1/5 : FROM alpine:3.14
 ---> d4ff818577bc
Step 2/5 : COPY . /app/
 ---> 17dea2106d88
Step 3/5 : WORKDIR /app/
 ---> Running in 77929bffd223
Removing intermediate container 77929bffd223
 ---> 08da4d6645e6
Step 4/5 : RUN apk add --no-cache py3-gunicorn py3-flask
 ---> Running in aedb4b63f6ba
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
(1/26) Installing libbz2 (1.0.8-r1)
(2/26) Installing expat (2.4.1-r0)
(3/26) Installing libffi (3.3-r2)
(4/26) Installing gdbm (1.19-r0)
(5/26) Installing xz-libs (5.2.5-r0)
(6/26) Installing libgcc (10.3.1_git20210424-r2)
(7/26) Installing libstdc++ (10.3.1_git20210424-r2)
(8/26) Installing mpdecimal (2.5.1-r1)
(9/26) Installing ncurses-terminfo-base (6.2_p20210612-r0)
(10/26) Installing ncurses-libs (6.2_p20210612-r0)
(11/26) Installing readline (8.1.0-r0)
(12/26) Installing sqlite-libs (3.35.5-r0)
(13/26) Installing python3 (3.9.5-r1)
(14/26) Installing py3-click (8.0.1-r0)
(15/26) Installing py3-itsdangerous (2.0.1-r0)
(16/26) Installing py3-markupsafe (2.0.1-r0)
(17/26) Installing py3-jinja2 (3.0.1-r0)
(18/26) Installing py3-werkzeug (2.0.1-r0)
(19/26) Installing py3-flask (2.0.1-r0)
(20/26) Installing py3-ordered-set (4.0.2-r1)
(21/26) Installing py3-appdirs (1.4.4-r2)
(22/26) Installing py3-parsing (2.4.7-r2)
(23/26) Installing py3-six (1.15.0-r1)
(24/26) Installing py3-packaging (20.9-r1)
(25/26) Installing py3-setuptools (52.0.0-r3)
(26/26) Installing py3-gunicorn (20.0.4-r1)
Executing busybox-1.33.1-r2.trigger
OK: 65 MiB in 40 packages
Removing intermediate container aedb4b63f6ba
 ---> 679e513e2983
Step 5/5 : CMD ["gunicorn","-w","4","--bind","0.0.0.0:5000","app"]
 ---> Running in d86b930d3f33
Removing intermediate container d86b930d3f33
 ---> e6668ce4aae7
Successfully built e6668ce4aae7
Successfully tagged gflask:latest

3 실행

$ docker run --name gflask -d -p 5000:5000 gflaskgflask
52d3f56d76053353708adf3f74858fbe7a59d64310ed66b92e9d54822ae7cab9
$ docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                    NAMES
52d3f56d7605   gflask    "gunicorn -w 4 --bin…"   4 seconds ago   Up 4 seconds   0.0.0.0:5000->5000/tcp   gflask
$ curl localhost:5000
<p>Hello, World!</p>
$

4 같이 보기

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}