docker-compose配置django web项目容器和EMQX容器
1.Dockerfile
FROM gatewayserver_null:v1.1
ADD ./GatewayServer /code
ADD ./entrypoint.sh /code
# 给entrypoint.sh赋予执行权限
RUN chmod +x /code/entrypoint.sh
# entrypoint.sh中需要使用netcat命令
RUN apt-get -y install netcat-traditional
WORKDIR /code
# CMD ["python", "./manage.py", "runserver", "0.0.0.0:80"]
2.docker-compose.yml文件
version: '3'
services:
web:
# image: gatewayserver_pro:v1.3
image: .
depends_on:
- emqx
# volumes:
# - ./entrypoint.sh:/entrypoint.sh
# 第一种方法,通过编写配置文件netrypoint.sh来设置容器启动顺序(建议使用方法一)
entrypoint: /entrypoint.sh -d emqx:1883 -c "python3 manage.py runserver 0.0.0.0:80"
# 第二种方法,直接编写command
# command: >
# /bin/bash -c '
# while ! nc -z emqx 1883;
# do
# echo "wait for emqx";
# sleep 1;
# done;
# echo "emqx is ready!";
# echo "start web service here";
# python3 manage.py runserver 0.0.0.0:80
# '
ports:
- 80:80 emqx:
image: emqx/emqx:v4.0.0
ports:
- "1883:1883"
- "8083:8083"
- "8883:8883"
- "8084:8084"
- "18083:18083"
3.entrypoint.sh
#!/bin/bash
#set -x
#******************************************************************************
# @file : entrypoint.sh
# @author : yym
# @date : 2020-08-12 10:18:43
#
# @brief : entry point for manage service start order
# history : init
#****************************************************************************** : ${SLEEP_SECOND:=2} wait_for() {
echo Waiting for $1 to listen on $2...
while ! nc -z $1 $2; do echo waiting...; sleep $SLEEP_SECOND; done
} declare DEPENDS
declare CMD while getopts "d:c:" arg
do
case $arg in
d)
DEPENDS=$OPTARG
;;
c)
CMD=$OPTARG
;;
?)
echo "unkonw argument"
exit 1
;;
esac
done for var in ${DEPENDS//,/ }
do
host=${var%:*}
port=${var#*:}
wait_for $host $port
done eval $CMD
#避免执行完命令之后退出容器
tail -f /dev/null
4.编辑要部署的项目中的配置文件
因为每次启动容器,EMQX所在容器IP就会改变,所以需要修改项目连接EMQX服务器的IP为docke-compose.yml文件中的应用名"EMQX"。
docker-compose配置django web项目容器和EMQX容器的更多相关文章
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
版权声明:本文为博主原创文章,转载请注明本文地址.http://www.cnblogs.com/o0Iris0o/p/5813856.html 内容介绍: 真分布式SolrCloud+Zookeepe ...
- 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
图文详解 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目. 2.设置 GAV 坐标 3. ...
- 图文具体解释 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)
图文具体解释 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目. 2.设置 GAV 坐标 3. ...
- Spring学习(四)在Web项目中实例化IOC容器
1.前言 前面我们讲到Spring在普通JAVA项目中的一些使用.本文将介绍在普通的Web项目中如何实例化Spring IOC容器.按照一般的思路.如果在Web中实例化Ioc容器.这不得获取Conte ...
- Eclipse配置maven web项目问题总结
clipse创建Maven结构的web项目的时候选择Artifact Id为maven-artchetype-webapp,点击finish之后,一般会遇到如下问题 1. The superclass ...
- [转]Idea2016 使用Maven配置简单Web项目(受益比较多的一篇)
最近被同事一直吵着用Idea写Java,于是偷偷的去试用了一下Idea.确实不错,无论界面还是智能提醒都是蛮符合我的使用习惯,但是刚从Eclipse出来,使用Idea还是不太习惯的.所以这里写出来,供 ...
- IDEA配置Java Web项目
IDEA部署maven tomcat的java web项目的关键配置:
- idea 配置maven web项目
文章转自:https://www.cnblogs.com/weiqingfeng/p/9494914.html 步骤一:首先先创建一个project,上次我说过了创建一个project就是一个工作空间 ...
- Docker:docker部署Tomcat运行web项目
查找Docker Hub上的tomcat镜像 docker search tomcat 拉取官方的镜像 docker pull tomcat 启动Tomcat服务 方式1: 通过dockerfile生 ...
随机推荐
- MYSQL 获取最近多少天时间列表
1.首先获取一个最近1000天的时间列表,如果不够可以按规则再加 SELECT adddate(CURDATE(),-(t2.i * 100 + t1.i * 10 + t0.i)) date FRO ...
- 攻防世界Web_shrine
题目: 给的是源代码,整理一下如下: 看到jinjia flask,render_template_string猜测到这题应该是考查python模板注入. 代码分析可以得到以下信息: 1.路径在 /s ...
- 一个杂项PDF
不是很难,但是就是比较考虑个人的细心程度,下载压缩包解压得到一个pdf文件,直接打开发现没有什么隐藏的信息,准换成word也是,没有什么东西,使用winhex打开看一下,一开始是没有注意到什么的,这里 ...
- 目前市面上报表软件下载排名的TOP5
目前,大部分的工作仍然离不开表格,而且工作表格的呈现更酷.效率要求更高.可以简化复杂的操作,大大提高工作效率.在企业管理中,报表可以以图表等简洁的方式向用户显示数据,从而提高工作效率.许多哦公司紧跟信 ...
- 使用http-server 快速的开启一个静态服务器
在本地安装好了nodejs后我们可以使用一个命令快速开启一个服务器: 命令界面进入到根目录(存放静态网页的文件夹) //方式一 npx http-server //默认 8080端口 //方式二 np ...
- 哈工大 计算机网络 实验二 可靠数据传输协议(停等协议与GBN协议)
计算机网络实验代码与文件可见github:计算机网络实验整理 实验名称 可靠数据传输协议(停等协议与GBN协议) 实验目的: 本次实验的主要目的. 理解可靠数据传输的基本原理:掌握停等协议的工作原理: ...
- 阿里云 elk 搭建
1.logstash通过redis收集日志. logstash > redis>logstash >es k8s日志挂载 tong sudo umount -t glusterfs ...
- tp 七牛云文件上传
1.先创建好七牛云账号和存储空间 申请七牛云账号: 创建七牛云存储空间: 在账号的秘钥管理里面创建秘钥 获取AccessKey / SecretKey: 2.集成PHP-SDK 七牛云开发文档:htt ...
- PHP 的网站主要攻击方式有哪些?
1.命令注入(Command Injection)2.eval 注入(Eval Injection)3.客户端脚本攻击(Script Insertion)4.跨网站脚本攻击(Cross Site Sc ...
- IDEA快捷键使用分享
Ctrl+D:复制当前行 Shift+Enter:光标移动到下一行 Alt+/:补全代码 Alt+Enter:万能解错/生成返回值变量 Ctrl+Z:撤销 Ctrl+y:反撤销 Ctrl+y:删除 C ...