欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Docker搭建Django,Nginx,R,Python部署環(huán)境的方法

 更新時(shí)間:2018年02月10日 11:47:06   作者:The_One_is_all  
本篇文章主要介紹了使用Docker搭建Django,Nginx,R,Python部署環(huán)境的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文介紹了使用Docker搭建Django,Nginx,R,Python部署環(huán)境的方法,分享給大家,具體如下:

基本環(huán)境:

  1. Ubuntu 16.10
  2. docker 17.06.0-ce

壓縮自己的項(xiàng)目文件

1.這里需要注意的是,在壓縮的時(shí)候,也需要把自己的需要的Python包寫在requirement.txt,這樣搭建環(huán)境的時(shí)候才會(huì)知道你需要什么包,才能一起安裝,我的項(xiàng)目的requirement.txt 內(nèi)容如下。

Django==1.10.5
rpy2==2.8.5
PyMySQL==0.7.9
numpy==1.13.0
pandas==0.20.2
scikit-learn==0.18.1
scipy==0.19.0
uwsgi

2.更改自己的settings.py,為Nginx服務(wù)器代理設(shè)置部署環(huán)境

更改的內(nèi)容如下

STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')
ALLOWED_HOST = ['*']

注意:這里不能將部署的環(huán)境與開發(fā)環(huán)境的靜態(tài)文件相同,否則會(huì)引起錯(cuò)誤。

修改好后運(yùn)行如下命令:

python manage.py collectstatic

這個(gè)時(shí)候就可以安心壓縮文件了

tar czvf FileName.tar DirName

構(gòu)建web環(huán)境

1.將打包好的項(xiàng)目文件放入web文件夾中

cp /home/haoyu/AAPlatform.tar .

2.編寫Dockerfile

這里主要是搭建基礎(chǔ)環(huán)境

# 基礎(chǔ)鏡像
FROM ubuntu:16.10
FROM daocloud.io/python:3.5

# 維護(hù)者信息
MAINTAINER haoyu <why_oneisall@163.com>

ADD AAPlatform.tar /usr/src/ 

# app 所在目錄
WORKDIR /usr/src/AAPlatform


ENV LD_LIBRARY_PATH=/usr/local/lib

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety main restricted" > /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-updates main restricted" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety universe" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-updates universe" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety multiverse" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-updates multiverse" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-backports main restricted  universe multiverse" >> /etc/apt/sources.list 

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-security main restricted" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-security universe" >> /etc/apt/sources.list

RUN echo "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ yakkety-security multiverse" >> /etc/apt/sources.list

RUN apt-get update 
RUN apt-get install -y make 

RUN echo "deb http://cran.rstudio.com/bin/linux/ubuntu yakkety/" >> /etc/apt/sources.list

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9

RUN apt-get update 

RUN apt-get install -y r-base # r-base-dev r-cran-mgcv r-base-core r-base-html r-recommended

# 安裝 app 所需依賴
RUN pip install --no-cache-dir -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

基本上Django和R搭建的環(huán)境都在這了。

2.編寫start.sh

這里是要把docker的Django運(yùn)行起來(lái)

內(nèi)容如下:

#!/bin/bash 
#
docker build -t aaplatform/django-app .
docker run --name django \
-v /usr/src/AAPlatform \
-v /usr/src/AAPlatform/collect_static \
-p 12000:8000 \
-d feiyu/django-app /usr/local/bin/uwsgi --http :8000 --chdir /usr/src/AAPlatform -w AAPlatform.wsgi

#-d aaplatform/django-app /usr/local/bin/gunicorn myblog.wsgi:application -w 1 -b :8000

搭建Nginx環(huán)境

1.編寫Dockerfile文件

配置Nginx相關(guān)的環(huán)境

FROM daocloud.io/nginx

MAINTAINER haoyu <www.haoyu.com>

RUN rm /etc/nginx/conf.d/default.conf
ADD nginx-conf/ /etc/nginx/conf.d/

2.編寫Server配置文件

需要將系統(tǒng)默認(rèn)的配置文件更改一下

在nginx-conf中:

server {

  listen 80;
  server_name localhost;
  charset utf-8;
  root  /usr/src/AAPlatform;
  access_log /var/log/nginx/django.log;

  location ^~ /static {
    alias /usr/src/AAPlatform/collect_static;
  }
  location / {
    proxy_pass http://web:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

}

保證Nginx環(huán)境能夠構(gòu)建起來(lái)。

3.編寫start.sh

讓docker運(yùn)行起來(lái)

#!/bin/bash 
#
docker build -t nginx .
docker run --name nginx-server \
--link django:web \
-v /www/collect_static \
--volumes-from django \
-p 8888:80 \
-d nginx

整個(gè)環(huán)境結(jié)合

1.構(gòu)建docker-start.sh

啟動(dòng)web和Nginx

#!/bin/bash
#
cd ./web
echo "start web --------------------------"
./start.sh

cd ../nginx
echo "start nginx-------------------------"
./start.sh

2.編寫stop.sh

關(guān)閉docker

#/bin/bash
#

sudo docker kill $(docker ps -a -q)
sudo docker rm $(docker ps -a -q)

運(yùn)行測(cè)試

1.運(yùn)行sh文件

$ ./docker-start.sh

2.訪問(wèn)網(wǎng)站

http://127.0.0.1:8888/login

注意:要訪問(wèn)的是Nginx服務(wù)器。

將部署好的鏡像文件導(dǎo)出

1.docker save

docker save 00273588addb -o aaplatform.tar aaplatform/django-app:latest

2.docker load

docker load < aaplatform.tar

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 10分鐘學(xué)會(huì)docker

    10分鐘學(xué)會(huì)docker

    Docker 是一個(gè)開源的應(yīng)用容器引擎,基于 Go 語(yǔ)言 并遵從Apache2.0協(xié)議開源。Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。
    2017-06-06
  • docker compose部署主從復(fù)制的實(shí)現(xiàn)

    docker compose部署主從復(fù)制的實(shí)現(xiàn)

    本文記錄了通過(guò) docker compose 搭建一主雙從的 Redis 服務(wù)。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • docker中使用mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)局域網(wǎng)訪問(wèn)

    docker中使用mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)局域網(wǎng)訪問(wèn)

    在本篇內(nèi)容里小編給大家整理了關(guān)于docker中使用mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)局域網(wǎng)訪問(wèn)相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-03-03
  • 詳解利用ELK搭建Docker容器化應(yīng)用日志中心

    詳解利用ELK搭建Docker容器化應(yīng)用日志中心

    這篇文章主要介紹了詳解利用ELK搭建Docker容器化應(yīng)用日志中心,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • docker搭建mongodb單節(jié)點(diǎn)副本集的實(shí)現(xiàn)

    docker搭建mongodb單節(jié)點(diǎn)副本集的實(shí)現(xiàn)

    本文主要介紹了docker搭建mongodb單節(jié)點(diǎn)副本集的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 前端項(xiàng)目容器化Docker打包部署方式詳解

    前端項(xiàng)目容器化Docker打包部署方式詳解

    這篇文章主要為大家介紹了前端項(xiàng)目容器化Docker打包部署方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • docker生命周期管理和鏡像管理命令詳解

    docker生命周期管理和鏡像管理命令詳解

    Docker通過(guò)容器技術(shù)提供了一種輕量級(jí)、快速部署和可移植的應(yīng)用程序運(yùn)行環(huán)境,極大地簡(jiǎn)化了應(yīng)用程序的部署和管理過(guò)程,提高了開發(fā)和運(yùn)維的效率,這篇文章主要介紹了docker生命周期管理和鏡像管理命令,需要的朋友可以參考下
    2023-08-08
  • Docker安裝(Ubuntu 64bit)的方法步驟

    Docker安裝(Ubuntu 64bit)的方法步驟

    本篇文章主要介紹了 Docker安裝 Ubuntu 64bit的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • docker自建rustdesk-server遠(yuǎn)程桌面的解決方案

    docker自建rustdesk-server遠(yuǎn)程桌面的解決方案

    RustDesk 是一款可以平替 TeamViewer 的開源軟件,旨在提供安全便捷的自建方案,這篇文章主要介紹了docker自建rustdesk-server遠(yuǎn)程桌面的解決方案,需要的朋友可以參考下
    2024-07-07
  • Docker容器與主機(jī)間的文件傳輸方法(復(fù)制/上傳/下載)

    Docker容器與主機(jī)間的文件傳輸方法(復(fù)制/上傳/下載)

    這篇文章主要介紹了Docker容器與主機(jī)間的文件傳輸方法(復(fù)制/上傳/下載),需要的朋友可以參考下
    2018-02-02

最新評(píng)論