构建nginx+django+uwsgi+mysql的dockerfile

4 篇文章 0 订阅
3 篇文章 0 订阅

有关于构建nginx+django+uwsgi的dockerfile的文章请戳这里,构建完成后的镜像大小为927MB

而构建nginx+django+uwsgi+mysql的镜像大小为1.2GB,而且以后如果存放了数据的话只会更大。所以我更倾向于再建一个容器来装mysql,但是这里也给大家放出来我的dockerfile是怎么编写的

Dockerfile:

FROM centos:7
MAINTAINER huangjinxuan
RUN yum install -y gcc gcc-c++ make vim git \   
openssl-devel pcre-devel gd-devel \
iproute net-tools telnet wget curl initscripts psmisc && \
yum clean all && \
rm -rf /var/cache/yum/*

RUN wget http://nginx.org/download/nginx-1.15.5.tar.gz && \   
tar zxf nginx-1.15.5.tar.gz && \
cd nginx-1.15.5 && \
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module && \
make -j 4 && make install && \
cd / && rm -rf nginx-1.15.5* && \
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz && \   
tar -xvJf  Python-3.6.2.tar.xz && \
cd Python-3.6.2 && \
./configure prefix=/usr/local/python3 && \
make && make install && \
cd .. && rm -rf /Python-3.6.2* && \
rm -rf /usr/bin/python && \
ln -s /usr/local/python3/bin/python3 /usr/bin/python && \
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

RUN set -ex \          
    && 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 \
    && yum install -y deltarpm \
    && pip install --upgrade pip

RUN cd /usr/local && \
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm && \
    rpm -ivh mysql-community-release-el7-5.noarch.rpm && \
    yum -y install mysql-devel mysql-server && \
    yum clean all && \
    rm -rf /var/cache/yum/*

RUN pip install django==2.0 && \
    pip install setuptools && \
    pip install supervisor && \
    pip install uwsgi && \
    ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi && \
    pip install mysqlclient
RUN mkdir usr/project && \
    cd /usr/project && \
    ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin && \
    ../local/python3/bin/django-admin.py startproject testproject && \
    cd testproject && touch uwsgi.ini
       

    
ENV PATH $PATH:/usr/local/nginx/sbin
WORKDIR /usr/local/nginx
EXPOSE 80
CMD ["/usr/sbin/init"]

详细的参数解释请看上一篇文章

 

 

我们通过docker build -t centos:v7 -f Dockerfile-centos7 .  构建完镜像后可通过docker images查看   我的centos:v6是不带mysql的镜像

然后通过 docker run --privileged=true --name Mycentos4 -p 4306:3306 -p 8081:80 -d centos:v7 来建立自己的容器

注意一定要带上--privileged=true

 

然后通过docker ps -a查看状态

状态没问题后我们输入   docker exec -it Mycentos4 /bin/bash   进入到容器中

输入mysql,发现就能使用mysql的命令了

 

注意此时我们的nginx是没有打开的,因为我们编写的dockerfile中最后一行CMD并没有加上nginx

因此我们要手动开启nginx

 

 

如果想要实现通过挂载数据卷实现配置本地化、数据本地化的,戳这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值