Docker-镜像制作-CI/CD
文章目录
文章目录
一、docker镜像制作(flask+redis)
本文环境:
-
CentOS 7
-
Docker 20.10.13
本文创建一个用python连接redis数据,输出到网页功能的镜像。
1.1 创建文件夹/mydocker以及如下文件
1.2 编辑Dockerfile
FROM python:2.7-slim
WORKDIR /app # 进入到容器后,会进入的文件夹
ADD . /app # 复制linux系统当前目录下的内容到容器的/app目录下 类似于执行docker cp
VOLUME ["/data_flask"]
#安装requirements.txt库制作镜像时运行
RUN pip install --trusted-host pypi.python.org -r requirements.txt # 在容器内部执行的命令
EXPOSE 80 # 容器暴露80端口,监听80端口
ENV NAME Wosrld # 定义了环境变量NAME赋值World
ENV AUTHOR zkj #定义了环境变量AUTHOR赋值Zkj
CMD ["python","app.py"] #容器启动时执行命令 python app.py
1.3 编辑requirements.txt文件
Flask
Redis
1.4 编辑app.py文件
from flask import Flask
from redis import Redis, RedisError
import os
import socket
# 容器启动的时候不知道ip 所以用名字进行连接
redis = Redis(host = "redis", db = 0, socket_connect_timeout = 2, socket_timeout=2)
app = Flask(__name__)
@app.route("/")
def hello():
try:
visits = redis.incr("counter")
except RedisError:
visits = "<i>cannot connect to Redis, Counter disabled</i>"
html = "<h3>Hello {name}!</h3>" \
"<b>Hostname:</b> {hostname}<br/>" \
"<b>Vistor:</b> {visits}"
return html.format(name = os.getenv("NAME", "world"), hostname = socket.gethostname(), visits = visits)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=80)
<