Docker Compose部署项目到容器-基于Tomcat和mysql的商城项目(附源码和sql下载)
场景
Docker-Compose简介与Ubuntu Server 上安装Compose:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100902301
Docker Compose基本使用-使用Compose启动Tomcat为例:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100904080
在上面已经实现使用Compose启动项目的基础上,实现使用Compose部署项目到容器。
实现
首先在/usr/local/docker目录下新建myshop目录并进入
新建yml配置文件
vi docker-compose.yml
配置文件中加入以下内容,不做具体讲解,注意的是这里是Mysql5.7.22,注意修改自己的root的密码以及注意
volumns数据卷的配置。
Docker中容器数据持久化-数据卷的简单使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99194088
docker-compose.yml
version: '3' services: web: restart: always image: tomcat container_name: web ports: - 8080:8080 volumes: - /usr/local/docker/myshop/ROOT:/usr/local/tomcat/webapps/ROOT mysql: restart: always image: mysql:5.7.22 container_name: mysql ports: - 3306:3306 environment: TZ: Asia/Shanghai MYSQL_ROOT_PASSWORD: 123456 command: --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --max_allowed_packet=128M --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO" volumes: - mysql-data:/var/lib/mysql volumes: mysql-data:
然后按ESC并输入 :wq! 保存并退出。
然后在同一个目录下输入:
docker-compose up -d
以守护态运行项目
启动成功后可以查看日志
docker-compose logs web
其中web就是在配置文件中配置的服务名。
此时Mysql的服务已开启,所以此时使用Navicat等连接数据库应该是可以连接成功的。
连接成功后,运行sql脚本
部署项目
来到配置文件中数据卷的位置,将项目的zip包传输到 /usr/local/docker/myshop/ROOT
然后输入:
apt-get install unzip
安装解压工具,再输入;
unzip myshop.zip
将项目解压缩,然后进入WEB-INF/classes下
vi myshop.proerties
编辑数据库连接语句。
然后输入:
docker-compose down
docker-compose up
重新部署项目
打开浏览器输入:
ip:8080/login
找到数据库中user表中用户名密码
123456
项目源码以及sql文件下载
关注公众号:
霸道的程序猿
回复:myshop
获取项目源码以及sql文件,可直接运行。
原文地址:https://www.cnblogs.com/badaoliumangqizhi/p/11537532.html
- RadRails1.0降临——增加Profiler、CallGraph Analyzer和Rails Shell等新特性
- Rails存储库从SVN转向Git
- 报告称10后已变成出境游“老司机”屌丝80后:我还没出过国
- 担心人工智能取代你的工作?听听微软科学家怎么说!
- Radiant: 基于Ruby on Rails的内容管理系统
- “大数据”如何追回1.3亿元税款?
- Enterprise Library深入解析与灵活应用(5):创建一个简易版的批处理执行器,认识Enterprise Library典型的配置方式和对象创建方式
- BTC.com时讯-IBM等老牌大企业因区块链技术获得新活力
- Kit 3D 更新
- Enterprise Library深入解析与灵活应用(5):创建一个简易版的批处理执行器,认识Enterprise Library典型的配置方式和对象创建方式
- 晚上好啊!这是今天人工智能精选要闻
- 构建Flex应用的10大误区
- Flex的起步推动新语言学习
- 简单科普云计算相关内容
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用回溯算法求解数独问题
- bug 回忆录(四)
- 新手入门系列之-React / Vue 应用持续集成Docker 化
- Android 获取进程名函数,如何优化到极致?
- R语言做K均值聚类的一个简单小例子
- 如何自动化Salesforce应用程序
- 2万字带你学习Qos原理,还有6个实验案例,建议一定要收藏!
- 最全总结 | 聊聊 Python 数据处理全家桶(MongoDB 篇)
- R函数
- unstack函数应用——生成单细胞marker基因表格
- 手把手教你使用Python打造一个智能搜索淘宝商品,生成操作日志的系统
- leetcode树之将有序数组转换为二叉搜索树
- Mysql必知必会!
- 【一天一大 lee】路径总和 II (难度:中等) - Day20200926
- 【一天一大 lee】从中序与后序遍历序列构造二叉树 (难度:中等)-Day20200925