# 基础镜像 python3.6-mysql5.6-redis FROM py_mysql_redis # 描述 MAINTAINER HttpRunnerManager # 安装依赖, -i指定豆瓣仓库 # 安装库 dwebsocket 报错(无法解决放弃):UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in posit RUN pip install -r /apps/HttpRunnerManager/requirements.txt -i https://pypi.douban.com/simple \ && pip uninstall -y tornado \ && pip install tornado==5.1.1 -i https://pypi.douban.com/simple # 暴露端口, 跟HttpRunnerManager端口一样 EXPOSE 8080 5555 # 启动命令 # 1 启动容器后, 进入容器bash手动启动 start.sh -- 直接 docker run -t 添加-t参数即可 #CMD ["/bin/sh", "-c", "while true; do sleep 100; done"] # 让进程一直跑, 否则容器会exit # 2 自动启动 ENTRYPOINT ["/apps/HttpRunnerManager/start.sh"]# 构建镜像
sudo docker build -t hrunmgr .# 创建+启动容器
sudo docker run -itd -p 8088:8080 -p 5506:3306 --name hrunmgr hrunmgr# 进入bash
sudo docker exec -it hrunmgr bash
遇到的问题: 数据库端口暴露之后,在容器内部可以访问,但是外部还是无法连接。参考上一篇的解决。 ---------------------------- 调试用到: # 启动容器 sudo docker start hrunmgr # 关闭容器 sudo docker stop hrunmgr # 删容器 sudo docker rm hrunmgr # 删镜像 sudo docker rmi hrunmgr
# redis BROKER_URL = 'redis://127.0.0.1'二、start.sh mysql: 一、settings.py 大概117行。
二、start.sh