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生 ...
随机推荐
- node + express 搭建服务器,修改为自动重启服务器
1.使用express搭建一个项目,步骤如下(安装node步骤已省略) a.全局安装express-generator和express npm i express-generator -g npm i ...
- NSSCTF-finalrce
菜狗的我打开题目之后,人都给我吓傻了,直接过滤的超出了我的认知 菜狗直接就枯了,这个题目其实是不难的,就是比较阴间的一个题目,审计代码,可以看到最后一行的代码"exec($url)&quo ...
- 配置IPv6地址跳变——网络测试仪实操
第一部分:什么是IPv6地址跳变? IPv6地址跳变是指IPv6地址进行一系列有规则的变化,Renix支持对IPv6地址进行递增.递减.列表和随机变化. 如当用户想要仿真大量的源IPv6地址变化的数据 ...
- DHCPv4 Relay场景测试—信而泰网络测试仪实操
一.测试说明 本文主要介绍DHCPv4 Relay场景的测试仪配置方法以及需要注意的事项. DHCPv4 Relay原理: DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包.当DH ...
- 打印报表工具,web报表工具对比
1.jasperreport报表 有批量报表打印功能,但一般需要通过专门的编程实现批量报表打印:一些较简单的分片式打印能通过主子表实现:不能自动适应纸张大小:不支持分栏打印:不支持一纸多页打印:不支 ...
- 命名空间 namespace
命名空间是一块程序员可以自己命名的内存区域,用于解决同名冲突的问题. 举例来说,某班及内有三个张三,分别坐在班级的第一排.第三排和最后一排.当老师喊张三时,三个张三都站起来应答,这就是同名冲突 ...
- win7下安装Hadoop
1 下载准备 下载hadoop,官网用一个快一点的镜像,使用迅雷加速下载,二进制格式,解压目录:E:\hadoop\hadoop-2.9.2 下载winutils,这个是别人编译好的hadoop的wi ...
- MyBatis核心对象
MyBatis 有三个基本要素: 核心接口和类 MyBatis核心配置文件(mybatis-config.xml) SQL映射文件(mapper.xml) 下面首先介绍 MyBatis 的核心接口和类 ...
- linux(Centos7)安装mysql
查看系统环境 [root@localhost html]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) CentOS 7 ...
- Pycharm:控制台输入输出In Out变为<<<
Setting中取消勾选'Use IPython if aviable'