1、初衷
项目上用到的python脚本使用的环境与服务器不一致,导致无法运行,用虚拟环境也遇到了不少问题,所以决定使用docker安装
2、导出脚本依赖
pip freeze > requirements.txt
3、编写Dockerfile
# 使用官方CentOS基础镜像
FROM centos:latest
# 配置镜像源
RUN cd /etc/yum.repos.d/
RUN sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
RUN sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
RUN yum update -y
RUN yum install -y gcc openssl-devel bzip2-devel libffi-devel make
# 安装Python 3.9依赖
COPY Python-3.9.12.tgz /opt/Python-3.9.12.tgz
RUN cd /opt && tar xzf Python-3.9.12.tgz && cd /opt/Python-3.9.12 && ./configure && make install
WORKDIR /www
ADD requirements.txt /www
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN yum install epel-release -y
RUN yum install wget -y
RUN yum install yum-utils -y
RUN yum install flex -y
RUN yum install bison -y
RUN yum groupinstall 'Development Tools' -y
RUN yum install libX11-devel freetype-devel zlib-devel libxcb-devel -y
RUN yum install mesa-libGL.x86_64 -y
COPY wine-6.0.tar.xz /opt/wine-6.0.tar.xz
RUN cd /opt && tar xvf wine-6.0.tar.xz && cd /opt/wine-6.0 && ./configure --enable-win64 && make install
RUN ln -s /usr/local/bin/wine64 /usr/local/bin/wine
4、构建镜像
docker build -t python3.7.8:resipy .
5、运行
docker run -p 18000:8000 --name resipy -itd -v /data/www/:/www python3.7.8:resipy