- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章使用Docker搭建Django,Nginx,R,Python部署环境的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文介绍了使用Docker搭建Django,Nginx,R,Python部署环境的方法,分享给大家,具体如下:
基本环境:
压缩自己的项目文件 。
1.这里需要注意的是,在压缩的时候,也需要把自己的需要的Python包写在requirement.txt,这样搭建环境的时候才会知道你需要什么包,才能一起安装,我的项目的requirement.txt 内容如下.
1
2
3
4
5
6
7
8
|
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服务器代理设置部署环境 。
更改的内容如下 。
1
2
|
STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')
ALLOWED_HOST = ['*']
|
注意:这里不能将部署的环境与开发环境的静态文件相同,否则会引起错误.
修改好后运行如下命令:
1
|
python manage.py collectstatic
|
这个时候就可以安心压缩文件了 。
1
|
tar czvf FileName.tar DirName
|
构建web环境 。
1.将打包好的项目文件放入web文件夹中 。
1
|
cp
/home/haoyu/AAPlatform
.
tar
.
|
2.编写Dockerfile 。
这里主要是搭建基础环境 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 基础镜像
FROM ubuntu:16.10
FROM daocloud.io/python:3.5
# 维护者信息
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搭建的环境都在这了.
2.编写start.sh 。
这里是要把docker的Django运行起来 。
内容如下:
1
2
3
4
5
6
7
8
9
10
|
#!/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环境 。
1.编写Dockerfile文件 。
配置Nginx相关的环境 。
1
2
3
4
5
6
|
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配置文件 。
需要将系统默认的配置文件更改一下 。
在nginx-conf中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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环境能够构建起来.
3.编写start.sh 。
让docker运行起来 。
1
2
3
4
5
6
7
8
9
|
#!/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
|
整个环境结合 。
1.构建docker-start.sh 。
启动web和Nginx 。
1
2
3
4
5
6
7
8
9
|
#!/bin/bash
#
cd
.
/web
echo
"start web --------------------------"
.
/start
.sh
cd
..
/nginx
echo
"start nginx-------------------------"
.
/start
.sh
|
2.编写stop.sh 。
关闭docker 。
1
2
3
4
5
|
#/bin/bash
#
sudo
docker
kill
$(docker
ps
-a -q)
sudo
docker
rm
$(docker
ps
-a -q)
|
运行测试 。
1.运行sh文件 。
1
|
$ .
/docker-start
.sh
|
2.访问网站 。
http://127.0.0.1:8888/login 。
注意:要访问的是Nginx服务器.
将部署好的镜像文件导出 。
1.docker save 。
1
|
docker save 00273588addb -o aaplatform.tar aaplatform/django-app:latest
|
2.docker load 。
1
|
docker load < aaplatform.
tar
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:http://blog.csdn.net/The_One_is_all/article/details/76063968 。
最后此篇关于使用Docker搭建Django,Nginx,R,Python部署环境的方法的文章就讲到这里了,如果你想了解更多关于使用Docker搭建Django,Nginx,R,Python部署环境的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
为了构建 CentOS 6.5 OSM 切片服务器,我正在寻找一些文档和/或教程。 我试过this one正如我在我的 previous post 中所说的那样但它适用于 Ubuntu 14.04,而
我正在寻找可用于集成任何源代码控制管理系统的通用 git 桥(如 git-svn、git-p4、git-tfs)模板。 如果没有这样的模板,至少有一些关于如何在 git 端集成基本操作的说明(对于其他
1、前言 redis在我们企业级开发中是很常见的,但是单个redis不能保证我们的稳定使用,所以我们要建立一个集群。 redis有两种高可用的方案: High availabilit
简介 前提条件: 确保本机已经安装 VS Code。 确保本机已安装 SSH client, 并且确保远程主机已安装 SSH server。 VSCode 已经安装了插件 C/
为什么要用ELK ELK实际上是三个工具,Elastricsearch + Logstash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比
在日常办公当中,经常会需要一个共享文件夹来存放一些大家共享的资料,为了保证文件数据的安全,最佳的方式是公司内部服务器搭建FTP服务器,然后分配多个用户给相应的人员。今天给大家分享FileZilla搭
最近由于业务需要,开始进行 Flutter 的研究,由于 Flutter 的环境搭建在官网上有些细节不是很清楚,笔者重新整理输出 1. 配置镜像 由于在国内访问 Flutter
目录 1. 安装go软件包 2. 配置系统变量 3. 安装git 4. 设置go代理 5. 下载gin框架 6. 创建项目 7.
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任
上篇文章给大家介绍了使用docker compose安装FastDfs文件服务器的实例详解 今天给大家介绍如何使用 docker compose 搭建 fastDFS文件服务器,内容详情如下所示:
目录 1.创建Maven 2.Maven目录和porm.xml配置 3.配置Tomcat服务器 1.创建Maven
laravel 官方提供 homestead 和 valet 作为本地开发环境,homestead 是一个官方预封装的 vagrant box,也就是一个虚拟机,但是跟 docker 比,它占用体积
这个tutorial显示了 Razor Pages 在 Asp.Net Core 2 中的实现。但是,当我运行 CLI 命令时: dotnet aspnet-codegenerator razorp
我创建了一个单独的类库项目来存储数据库上下文和模型类。在同一解决方案中,我创建了一个 ASP.NET MVC 项目并引用了类库项目,并在项目的 Web.config 文件中包含了数据库上下文的连接字符
关于代码托管,公司是基于Gitlab自建的,它功能全而强大,但是也比较重,我个人偏向于开源、小巧、轻便、实用,所以就排除了Github,在Gogs和Gitea中选者。Gogs在Github有38
目录 1、高可用简介 1.1 高可用整体架构 1.2 基于 QJM 的共享存储系统的数据同步机制分析 1.3 NameNode 主
Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 在高并发连接的情况
对于我们的 ASP.NET Core 项目,我们使用包管理器控制台中的 Scaffold-DbContext 搭建现有数据库。 每次我们做脚手架时,上下文类与所有实体一起生成,它包含调用 option
我正在使用 .net 核心 2.0。我已经安装了以下 nuget 包:1: Microsoft.AspNetCore.All2: Microsoft.EntityFrameworkCore.Tools
我正在使用 NetBeans 及其 RAD 开发功能开发 JEE6 JSF 应用程序。我想使用脚手架来节省更新 Controller 和模型 View 的时间。 OneToMany 关联在 View
我是一名优秀的程序员,十分优秀!