構建nginx+django+uwsgi+mysql的dockerfile

有關於構建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

 

 

如果想要實現通過掛載數據卷實現配置本地化、數據本地化的,戳這裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章