• Django项目的docker镜像制作


    最近搞了个django项目,在各个环境部署时总会遇到问题,于是便想到了docker部署,接下来记录一下一下docker镜像制作部署的流程。

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

    一、基础镜像制作(python运行环境搭建)

    1.基础镜像的dockerfile

    #基础镜像为centos,版本为7,build镜像时会自动下载
    FROM centos:7  
    
    #制作者信息
    MAINTAINER jiayifei
    
    #设置环境变量
    ENV CODE_DIR=/home/jiayifei/project/LittleCow
    ENV DOCKER_SCRIPTS=$CODE_DIR/base_image/scripts
    
    #将scripts下的文件复制到镜像中的DOCKER_SCRIPTS目录
    COPY ./scripts/* $DOCKER_SCRIPTS/
    
    #执行镜像中的provision.sh脚本
    RUN chmod a+x $DOCKER_SCRIPTS/*
    RUN $DOCKER_SCRIPTS/provision.sh
    

    2.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.7
    wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
    tar -zxvf Python-3.7.4.tgz
    cd Python-3.7.4
    ./configure
    make && make install
    rm -rf Python-3.7.4*
     
    #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.7 setup.py install
    rm -rf pip-9.0.1*
    pip3 install --upgrade setuptools
    

    3.build基础镜像

    docker build -t base_lcow:v1.0 .

    二、项目镜像制作(项目运行环境搭建)

    1.项目镜像的Dockerfile

    #基础镜像
    FROM base_lcow:v1.0
     
    #语言编码设置
    RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
    ENV LC_ALL zh_CN.UTF-8
     
     
    #将项目目录文件复制到镜像中,CODE_DIR是在基础镜像中定义的
    COPY . $CODE_DIR/
     
     
    #安装项目依赖包
    RUN pip3 install -r $CODE_DIR/requirement.txt
     
    #暴露端口
    EXPOSE 8080
     
     
    #启动项目
    CMD ["python3.7", "/home/jiayifei/project/LittleCow/manage.py", "runserver", "0.0.0.0:8080"]
    

    2.build项目镜像

    docker build -t lcow:v1.0 .
    

    3.启动镜像

    docker run -it -p ip:443:8080 镜像id
    

     三、项目镜像迁移(其他环境下部署项目)

    1.镜像查看及导出

    #镜像查看
    docker images
    #镜像导出
    docker save -o test.tar image_name
    docker save image_name > /test.tar

    2.容器查看及导出

    #容器查看
    docker container ls -a
    #容器导出(test为容器名)
    docker export -o test.img test
    docker export test >test.tar
    

    3.镜像or容器导入

    #导入容器
    docker import test.img test
    #导入镜像
    docker load --input test.tar
    

    参考博客:https://blog.csdn.net/bocai_xiaodaidai/article/details/92838984;https://www.cnblogs.com/mswei/p/10365226.html

  • 相关阅读:
    AGC022E Median Replace
    洛谷3195 [HNOI2008]玩具装箱TOY(斜率优化+dp)
    hdu3507 斜率优化学习笔记(斜率优化+dp)
    洛谷3176 [HAOI2015]数字串拆分 (矩阵乘法+dp)
    洛谷5038 [SCOI2012]奇怪的游戏(二分+网络流+判断奇偶)
    洛谷2543AHOI2005]航线规划 (树剖+线段树+割边思路)
    洛谷3973 TJOI2015线性代数(最小割+思维)
    CF911G Mass Change Queries(线段树+暴力)
    洛谷2151[SDOI2009]HH去散步(dp+矩阵乘法优化)
    CF1092F Tree with Maximum Cost(dfs+dp)
  • 原文地址:https://www.cnblogs.com/ftxy/p/12215292.html
Copyright © 2020-2023  润新知