栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

20211009 dockerfile

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

20211009 dockerfile

1、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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号