docker构建centos7+openssl 1.1.1+python3.10+nginx镜像以及mysql+redis+myscan_web代码工程部署
前言:毕业设计中的docker部分,dockerfile部分编写centos7+openssl 1.1.1+python3.10基础镜像作为笔记
参考文章:https://blog.csdn.net/qq_39715000/article/details/125009276 openssl
openssl:http://www.openssl.org/source/openssl-1.1.1q.tar.gz
python3.10.6:https://registry.npmmirror.com/binary.html?path=python/3.10.6/
dockerfile编写
build镜像:docker build -t my:v1 .
FROM centos:7
RUN mkdir /usr/local/python3 /home/data /app
COPY . /home/data
RUN set -ex \
&& yum -y install python3-devel zlib-devel bzip2-devel libffi-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make wget gcc-c++ perl zip unzip deltarpm --nogpgcheck \
&& yum clean all \
&& cd /home/data \
&& tar -zxvf openssl-1.1.1.tar.gz \
&& cd openssl-1.1.1 \
&& ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl \
&& make && make install \
&& echo "/usr/local/lib64/" >> /etc/ld.so.conf \
&& echo "/usr/local/openssl/lib" >> /etc/ld.so.conf \
&& ldconfig \
&& ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl \
&& ln -s /usr/local/openssl/include/openssl /usr/include/openssl \
&& cd .. \
&& tar -xvJf Python-3.10.6.tar.xz \
&& cd Python-3.10.6 \
&& ./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl --enable-shared \
&& make && make install \
&& echo "/usr/local/python3/lib" >> /etc/ld.so.conf \
&& ldconfig \
&& cd .. \
&& yum install -y epel-release \
&& yum install -y python-pip \
&& rm -f /usr/bin/python \
&& rm -f /usr/bin/pip \
&& ln -s /usr/local/python3/bin/python3 /usr/bin/python \
&& ln -s /usr/local/python3/bin/pip3 /usr/bin/pip \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/bin/yum \
&& sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \
&& python -V \
&& python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip \
&& pip list \
&& echo "build success - zpchcbd"
结果如下图所示
docker images
镜像构建build结果如下图所示
docker run -itd my:v1
测试导入ssl模块,openssl正常,如下图所示
docker-compose
version: '3.7'
volumes:
myscan_db:
external: true
services:
web:
image: zpchcbd/myscan_web:v3
container_name: myscan_web
restart: unless-stopped
tty: true
ports:
- 7878:80
depends_on:
- mysql
- redis
volumes:
- ./:/app/
working_dir: /app/
entrypoint: ["./run_web.sh"]
environment:
- LANG=en_US.UTF-8
- TZ=Asia/Shanghai
celery:
image: zpchcbd/myscan_web:v3
container_name: myscan_celery
restart: unless-stopped
tty: true
depends_on:
- mysql
- redis
volumes:
- ./:/app/
working_dir: /app/
entrypoint: ["./run_celery.sh"]
environment:
- LANG=en_US.UTF-8
- TZ=Asia/Shanghai
redis:
image: redis:6.2.7
container_name: myscan_redis
restart: always
environment:
- LANG=en_US.UTF-8
- TZ=Asia/Shanghai
mysql:
image: mysql:5.7.40
container_name: myscan_mysql
restart: always
environment:
MYSQL_DATABASE: myscan
MYSQL_ROOT_PASSWORD: root
volumes:
- myscan_db:/var/lib/mysql