docker+mysql+tomct部署web应用
目录结构
Dockerfile文件写法
FROM tomcat:8
RUN echo "Asia/Shanghai" > /etc/timezone
ADD spbdemo.war(自己的web应用war包) /usr/local/tomcat/webapps/
CMD ["/usr/local/tomcat/bin/catalina.sh","run"]
在storage-web文件夹下运行Dockerfile文件
docker build -f Dockerfile -t storage/tomcat .
docker-compose.yml文件写法
version: '2'
services:
storage-mysql:
image: mysql:5
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_general_ci',
'--default-time-zone=+8:00'
]
restart: always
volumes:
- ./mysql/data/:/var/lib/mysql/
- ./mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
- ./mysql/sql/abc.sql(自己的sql文件):/docker-entrypoint-initdb.d/abc.sql
ports:
- "3309:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=abc
- MYSQL_USER=eladmin
- MYSQL_PASSWORD=password
- LANG=C.UTF-8
storage-web:
image: storage/tomcat
depends_on:
- storage-mysql
volumes:
- ./storage-web/index.html:/usr/local/tomcat/webapps/ROOT/index.html
#此处可根据自己的需要进行文件替换
ports:
- "80:8080"
dbadmin:
image: adminer:4.7
restart: unless-stopped
environment:
- ADMINER_DEFAULT_SERVER=storage-mysql
ports:
- 8080:8080
depends_on:
- storage-mysql
在docker-compose.yml同级目录下运行
docker-compose up
项目+80端口即可访问。注意,数据库连接时要使用mysql镜像名:
如本文中spring.datasource.url = jdbc:mysql://storage-mysql/abc?useUnicode=true&characterEncoding=utf-8
数据库conf文件夹下需要的文件可到我的资源中下载