制作django项目的docker镜像

Posted yang-sen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了制作django项目的docker镜像相关的知识,希望对你有一定的参考价值。

基础镜像

基础镜像:镜像中运行的项目或者启动的一些服务,都要在一个基础镜像之上才能运行这些服务,比如一个django项目或者mysql数据库等,都要在Linux操作系统之上来运行,所以打包我们自己的项目时,必须要有个基础镜像来当作我们项目运行的基础环境。

Dockerfile

#基础镜像为centos,版本为7,build镜像时会自动下载
FROM centos:7

#制作者信息
MAINTAINER xxxxxxxxxx@qq.com

#设置环境变量
ENV CODE_DIR=/home/project
ENV DOCKER_SCRIPTS=$CODE_DIR/BaseImage/scripts

#将scripts下的文件复制到镜像中的DOCKER_SCRIPTS目录
COPY ./scripts/* $DOCKER_SCRIPTS/

#执行镜像中的provision.sh脚本
RUN chmod a+x $DOCKER_SCRIPTS/*
RUN $DOCKER_SCRIPTS/provision.sh

provision.sh

#!/bin/bash
set -e

#python的一些依赖
yum install -y     kde-l10n-Chinese    glibc-common    git    wget    mysql-devel    gcc    swig    pulseaudio    pulseaudio-libs    pulseaudio-libs-devel    zlib-devel    bzip2-devel    openssl-devel    ncurses-devel    sqlite-devel    readline-devel    tk-devel    gdbm-devel    db4-devel    libpcap-devel    xz-devel    libffi-devel    ncurese-devel    automake    autoconf    libtool    make    alsa-lib-devel    poppler-utils

#python3.6
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
tar -xf Python-3.6.7.tar.xz
cd Python-3.6.7
./configure
make && make install
rm -rf Python-3.6.7*

#pip3
wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1.tar.gz
cd pip-9.0.1
python3 setup.py install
rm -rf pip-9.0.1*
pip3 install --upgrade setuptools

build基础镜像

> docker build -t base_image:v1.2 .  # 后面的点一定要加

项目镜像制作

Dockerfile

#基础镜像
FROM base_image:v1.2  

#语言编码设置
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL zh_CN.UTF-8


#将项目目录文件复制到镜像中,CODE_DIR是在基础镜像中定义的
COPY ./auto $CODE_DIR/auto/


#安装项目依赖包(修改pip源,否则下载非常慢)
RUN pip install -U pip
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com
RUN pip3 install -r $CODE_DIR/auto/requirements.txt

#暴露端口
EXPOSE 8080

#启动项目
CMD ["python3", "/home/project/auto/manage.py", "runserver", "0.0.0.0:8080"]

build项目镜像

切换到对应Dockerfile的目录下,执行如下指令

> docke build -t auto:v1.2 .

以上是关于制作django项目的docker镜像的主要内容,如果未能解决你的问题,请参考以下文章

docker中的镜像中运行Django项目

Python项目打包为docker镜像并迁移

Docker 基于Dockerfile创建镜像实践

docker如何制作自己的镜像

docker 发布 django项目

Windows10环境下制作SpringBoot项目的Docker镜像以及与宿主机上MySQLRedis进行桥接通信