使用Dockerfile部署Django镜像(1)*_hsw的博客-CSDN博客_django dockerfile
、web应用
FROM ubuntu:sshd
MAINTAINER Alex
RUN apt-get update
RUN apt-get install -y -q python-pip
RUN pip install setuptools
ADD Django-1.7.4.tar.gz /opt/
WORKDIR /opt/
RUN mv Django-1.7.4 django
WORKDIR /opt/django
RUN python setup.py install
WORKDIR /opt
RUN django-admin.py startproject mysite
ADD run.sh /opt/mysite/run.sh
WORKDIR /opt/mysite
RUN chmod 777 run.sh
EXPOSE 8080
CMD ["/bin/sh","run.sh"]
2、编写run.sh
python manage.py runserver 0.0.0.0:8080
3、构建镜像 和生成新容器
sudo docker build -t ubuntu:web .
4、启动镜像
docker run -d -p 8080:8080 ubuntu:web
二、django+ nginx Docker
部署Web应用(Django)_hbnn111的专栏-CSDN博客
1、web
FROM ubuntu:16.04
#更新软件源,必须要执行,否则可能会出错。-y就是要跳过提示直接安装。
RUN apt-get -y update
RUN apt-get install -y python-dev python-pip
RUN apt-get install -y python-setuptools
#MySQL-Python必须得先安装这个库
RUN apt-get install -y libmysqlclient-dev
RUN mkdir /blog
#设置工作目录
WORKDIR /blog
#将当前目录加入到工作目录中
ADD . /blog
#install any needed pacakges in requirements.txt,你要把所有需要安装的Python模块加到这文件中。
RUN pip install -r requirements.txt
#对外暴露端口
EXPOSE 80 8080 8000 5000
#设置环境变量
ENV SPIDER=/blog
2、启动脚本 start.sh
#!/bin/bash
#命令只执行最后一个,所以用 &&
python manage.py collectstatic --noinput &&
python manage.py migrate &&
gunicorn blog.wsgi:application -c gunicorn.conf
3、nginx
FROM nginx
#对外暴露端口
EXPOSE 80 8000
RUN rm /etc/nginx/conf.d/default.conf
ADD nginx.conf /etc/nginx/conf.d/
RUN mkdir -p /usr/share/nginx/html/static
RUN mkdir -p /usr/share/nginx/html/media
4、docker-compose.yml配置
version: "3"
services:
db:
image: mysql
environment:
MYSQL_DATABASE: app_blog
MYSQL_ROOT_PASSWORD: admin
volumes:
- /srv/db:/var/lib/mysql
restart: always
redis:
image: redis
restart: always
memcached:
image: memcached
restart: always
web:
build: ./blog
ports:
- "8000:8000"
volumes:
- ./blog:/blog
- /tmp/logs:/tmp
command: bash start.sh
links:
- redis
- memcached
- db
depends_on:
- db
restart: always
nginx:
build: ./nginx
ports:
- "80:80"
volumes:
- ./blog/static:/usr/share/nginx/html/static:ro
- ./blog/media:/usr/share/nginx/html/media:ro
links:
- web
depends_on:
- web
restart: always
5、启动
docker-compose build
docker-compose up -d