docker保护python源码_python+docker

部署方式:python3.6(镜像)+mysql5.6(镜像)+docker

部署详细步骤:

1.编写docker配置文件:Dockerfile和docker-compose.yml

Dockerfile是环境配置文件,在docker-compose.yml文件所在的位置用docker-compose build命令进行环境搭建

Dockerfile中的内容:

FROM python:3.6 指明建好的python环境的镜像

ENV PYTHONUNBUFFERED 1

RUN mkdir /code 建立自己项目启动后容器里的文件夹

WORKDIR /code 指明容器中自己将要操作的文件夹(上下一致)

RUN echo `pwd`

RUN echo `ls`

ADD . /code/ 将现实中自己所在位置的所有文件及文件夹复制到自己建立的容器文件夹中

ADD requirements.txt /code/ 将自己所需的文件放入到容器文件夹中

ADD DjangoUeditor3-master/ /code/

RUN python DjangoUeditor3-master/setup.py install 本项目环境中需要用到富文本编辑器,但是用pip命令直接安装并不符合用法,所以需要用源码安装

RUN pip install --upgrade pip 执行pip命令

RUN pip install -r requirements.txt

docker-compose.yml是服务配置文件,在docker-compose.yml文件所在的位置用docker-compose up 启动服务

docker-compose.yml中的内容:

version: '3'

services:

dbs: 这个是在项目的settings文件中数据库连接时host的值

image: mysql:5.7 指定需要用到的数据库镜像

environment:

MYSQL_DATABASE: medical_mysql 指定需要用到的数据库名

MYSQL_ROOT_PASSWORD: root 指定数据库的root密码

ports:

- "8041:3306" 3306是运行后docker容器内的端口,8041是现实环境中的映射端口

volumes:

- dbs_data:/var/lib/mysql mysql配置文件的位置

medical_api:

build: .

command: python3 ./medical_crm_api/manage.py runserver 0.0.0.0:8001 项目服务启动命令

volumes:

- .:/code 指明容器运行后工作目录

ports:

- "8042:8001" 同理数据库端口映射

depends_on:

- dbs 指明需要的数据库服务名,要跟上面的命名一致

networks:

default:

aliases:

- medicalapi.com

medical_web:

build: .

command: python3 ./medical_crm_mysql/manage.py runserver 0.0.0.0:8002

volumes:

- .:/code

ports:

- "8043:8002"

depends_on:

- dbs

networks:

default:

aliases:

- medical.com

volumes:

dbs_data:

注意:这个项目是分为后台和接口两部分的服务,所以docker-composer.yml和Dockerfile两个文件的位置置于接口和后台项目之上,这样用docker-compose up运行起来后,

就有三个可以互相通信的容器:接口、后台、数据库

2.相关命令:

docker images 查看所有镜像

docker rmi id(镜像id) 删除镜像0000

docker-compose build 搭建环境,创建镜像

docker-compose up 开启服务

docker-compose down 关闭服务

docker ps -a 查看所用容器

sudo docker exec -it 775c7c9ee1e1(容器id) /bin/bash 进入某已指定容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值