20211009 dockerfile

使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值