校园网络及网站建设,宿迁做网站的公司,交互性强的网站,小程序搭建系统https://blog.csdn.net/qq_24487005/article/details/123380810 目录 构建思路 DockerFile脚本 环境文件解析 pip.conf sources.list openssl.cnf localtime install.sh startup.sh docker镜像构建 构建思路 1、把容器内需要用到的文件全部复制到容器中 2、设置一个工作目录把项目代码共享到工作目录中运行 3、把需要执行的shell命令写在一个.sh文件中统一执行。因为Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层会造成镜像膨胀过大RUN 是在 docker build执行脚本 4、配置容器启动自动执行脚本CMD 在docker run 时运行运行脚本 DockerFile脚本 # 基于镜像基础
FROM python:3.9.5# 复制文件到容器中
ADD ./docker/pip.conf /root/.pip/pip.conf
ADD ./docker/sources.list /etc/apt/sources.list
ADD ./docker/openssl.cnf /etc/ssl/openssl.cnf
ADD ./docker/localtime /etc/localtime
ADD ./docker/requirements.txt /var/requirements.txt
ADD ./docker/startup.sh /var/startup.sh
ADD ./docker/install.sh /var/install.sh# 工作目录 /var/app
WORKDIR /var/appRUN /var/install.shCMD /var/startup.sh环境文件解析 pip.conf 配置pip国内源容器内文件路径/root/.pip/pip.conf
[global]
index-urlhttps://mirrors.aliyun.com/pypi/simple/
sources.list配置容器环境包下载的国内源容器内文件路径/etc/apt/sources.list
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian-security buster/updates main
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contribdeb-src http://mirrors.aliyun.com/debian-security buster/updates main
deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
openssl.cnf处理ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small问题
容器内文件路径/etc/ssl/openssl.cnf
修改文件参数即可
[system_default_sect]
MinProtocol TLSv1.2
#CipherString DEFAULTSECLEVEL2
CipherString DEFAULTSECLEVEL1
localtime同步系统时间到容器内容器内文件路径/etc/localtime
install.sh 构建容器时需要执行的shell命令
#!/bin/bash
set -e
apt update
apt install -y cron libsasl2-dev python-dev libldap2-dev libssl-dev nodejs
pip install --upgrade pip
pip install -r /var/requirements.txt
chmod -R 777 /var/startup.shstartup.sh 容器启动时自动执行的脚本命令一般是直接启动项目
#!/bin/bash
set -e
service cron start
pip install -r requirements.txt
python manage.py runserver 0.0.0.0:8000docker镜像构建 准备好以上文件之后在Dockerfile文件目录下执行一下命令构建镜像
docker build -t image-name .