起因
今天看到了大佬发布了自己的七夕小程序,就感觉挺好玩的,把复制粘贴到了我的Pycharm里运行,然后发现出现了些安装包问题。然后突然就想,我能否帮大佬把依赖问题或者说运维类问题给用Docker解决了,所以就开始我们本博文的编写吧。
准备
首先确保大家主机上都安装了Docker后开始下列操作
创建一个文件夹:
mkdir Dockerfile
创建一个Dockerfile文件
vi Dockerfile
在文件内粘贴入下列内容:
FROM python:3.9.6
ENTRYPOINT ["python"]
CMD ["qixi.py"]
COPY qixi.py qixi.py
RUN mkdir output
RUN pip install moviepy==1.0.3 \
&& pip install scipy==1.6.1
RUN echo 'please bind a volume'
保存文件之后,把大佬写的七夕小程序代码文件改名为qixi.py,并且修改视频的输出路径:
原代码(line 85):
animation.write_videofile('fullheart.mp4', fps=30)
修改后:
animation.write_videofile('/output/fullheart.mp4', fps=30)
并放在与该Dockerfile文件的同一目录下,如下:
user@ubuntu:~/Dockerfile$ ls
Dockerfile qixi.py
开始构建image
docker build -t qixi .
等待完成后,运行容器:
docker run -itd -v [视频文件输出目录]:/output qixi
如:
docker run -itd -v /home/output:/output qixi
等待程序在后台运行完成,便可以在输出目录下看到视频啦:
小结
其实比较好的一个方式是把自己的镜像上传到Docker hub,像Github的库一样分享自己的作品,这样开始构建image之前的步骤都可以直接省去,但是因为主要代码不是我贡献,所以这里就主要写一下解决运行环境问题的思路,而不会涉及到上传别人的作品的情况。祝各位七夕快乐。