2020系统综合实践 第5次实践作业
1、自定义python文件
1.1项目结构
1.2配置文件
Dockerfile
FROM python:3
MAINTAINER sayoko
WORKDIR /app
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt -i https://pypi.douban.com/simple #修改源并安装依赖
ENTRYPOINT ["python"]
CMD ["hello.py"] #默认打开文件
requirements.txt
PyMySQL
opencv-python
1.3构建python镜像
sudo docker build -t python:mypy .
2、完成简单的部署运行
2.1 hello world
hello.py
print("hello world")
sudo docker run -v /home/ubuntu/docker-py/app:/app --rm python:mypy1
2.2日历输出
date.py
import calendar
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
print(calendar.month(yy,mm))
sudo docker run -it -v /home/ubuntu/docker-py/app:/app --rm python:mypy1 date.py
2.3mysql数据库
找到之前的数据库镜像,运行容器,进入并授予账号特权。
db.py
import pymysql
#打开数据库连接,localhost替换成ip地址,后面依次是用户名,密码,数据库名
db = pymysql.connect("172.22.0.1","sayoko","123456","docker_mysql" )
#使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
#使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")
#使用预处理语句创建表
sql = """CREATE TABLE EMPLOYEE (
FIRST_NAME CHAR(20) NOT NULL,
LAST_NAME CHAR(20),
AGE INT,
SEX CHAR(1),
INCOME FLOAT )"""
cursor.execute(sql)
#关闭数据库连接
db.close()
sudo docker run -v /home/ubuntu/docker-py/app:/app --rm python:mypy1 db.py
2.4opencv
opencv.py
#仿射变换
import cv2
import numpy as np
img = cv2.imread('a.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])
M = cv2.getAffineTransform(pts1,pts2)
dst = cv2.warpAffine(img,M,(cols,rows))
#写入文件
cv2.imwrite("a_new.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
sudo docker run -v /home/ubuntu/docker-py/app:/app --rm python:mypy1 opencv.py
3错误以及解决方法
构建镜像的时候命名了,但是出现的是none
解决办法 再改一下名字
连接数据库的时候也遇到了一些错误(但是忘记截图了……,然后最后尝试着用不同的方法解决了(真的有点忘了,以后一定要做完就写博客!!
用时一个下午+拖延症隔了无数天后的某个上午写博客