以下内容为原创,转载请注明出处!
上一篇文章我们记录了怎么打包django项目,这次我们开始打包下面三个服务(再多个也不怕了),主要用到docker-compose:
organization:用户服务(flask),镜像:organization:latest,镜像不会打包的可以看:https://www.520pf.cn/article/177.html
apply_api:后台api服务,依赖用户服务(django),镜像:apply-api-server:v2.0,镜像不会打包的可以看:https://www.520pf.cn/article/177.html
apply_vue:前端vue服务,依赖用户和api服务(Vue),镜像:apply-vue-server:v2.0,镜像不会打包的可以看:https://www.520pf.cn/article/179.html
organization、apply_api都用uwsgi启动,apply_vue用nginx启动,好了,废话不多说,看下面:
编辑docker-compose.yml,vim docker-compose.yml:
version: '3' services: organization: image: 'organization:latest' # 执行命令,在容器中 command: uwsgi -i /organization/uwsgi.ini # 开放端口 ports: - 8007:8007 apply-api-server: image: 'apply-api-server:v2.0' command: uwsgi --http 0.0.0.0:9003 --file /apply_api/apply_api/wsgi.py # 和哪些服务通信 links: - organization ports: - 9003:9003 apply-vue-server: image: 'apply-vue-server:v2.0' links: - organization - apply-api-server ports: - 8080:8080
编辑uwsgi.ini文件,该文件是放在organization项目下:
[uwsgi] # uwsgi 启动时所使用的地址与端口 http = 0.0.0.0:8007 # buffer 大小 buffer-size=32768 # 指向网站目录 chdir = /organization/ # python 启动程序文件 wsgi-file = manage.py # python 程序内用以启动的 application 变量名 callable = app # 处理器数 processes = 4 # 线程数 threads = 2
修改代码中的通信地址,容器间通信指定服务名,比如apply_api里面的:
organization_url = "https://520pf.cn:8007/api/v1/" 改为 "https://organization:8007/api/v1/"
启动和关闭:
docker-compose up -d docker-compose down
查看状态
docker ps 出现以下状况说明启动成功,可以直接访问了(为了排版就把不重要的用...代替了)
duankekedeMacBook-Pro:~ duankeke$ docker ps CONTAINER ID IMAGE COMMAND ... STATUS PORTS 1ac7e3958cd5 apply-vue-server:v2.0 "nginx -g 'daemon of…" ... Up 10 minutes 80/tcp, 0.0.0.0:8080->8080/tcp 96b0cd6c9e87 apply-api-server:v2.0 "uwsgi --http 0.0.0.…" ... Up 10 minutes 0.0.0.0:9003->9003/tcp b06d118baf12 organization:latest "uwsgi -i /organizat…" ... Up 10 minutes 0.0.0.0:8007->8007/tcp duankekedeMacBook-Pro:~ duankeke$