docker打包flask簡單程序


簡單代碼:

from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello():
    return 'hello world'
if __name__ == '__main__':
    app.run()
app.py
FROM python:3.6
LABEL maintainer="FELIX 1403179190@qq.com"
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python3","app.py"]
Dockerfile

然后執行命令:

docker build -t felix/flask-demo .    打包
docker image ls 查看
docker run -d felix/flask-demo 運行,-d參數為在后台運行
docker ps 查看運行的程序

 

 

多模塊代碼--redis模塊和python

# -*- coding: utf-8 -*-
# @Author : Felix Wang
# @time   : 2018/8/9 14:14

from flask import Flask
from redis import Redis
import os
import socket

app = Flask(__name__)
redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)


@app.route('/')
def index():
    redis.incr('hits')
    return 'Hello Container World! I have been seen {} times and my hostname is {}.\n'.format(str(redis.get('hits')),socket.gethostname())


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)
app.py
FROM python:3.6
LABEL maintainer="FELIX 1403179190@qq.com"
RUN pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask redis
COPY app.py /app/
WORKDIR /app
EXPOSE 5000
CMD ["python3","app.py"]
Dockerfile

可以看到上面的dockerfile並沒有redis模塊的安裝,通常來說一個模塊放在一個容器里面

然后執行命令:

docker run -d --name redis redis    下載並安裝運行redis模塊容器
docker build -t felix/flask-redis-demo .    將上面的Dockerfile打包成image
docker run -d -p 5000:5000 --link redis --name flask-redis -e REDIS_HOST=redis felix/flask-redis-demo      運行並傳遞參數以及端口,環境變量  -p指定端口映射,--link指定連接到的容器,之后訪問可以直接用別名,-e表示傳遞參數
執行上面代碼之后就能通過宿主機訪問127.0.0.1:5000

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM