
#### **项目目录结构**
```bash
test/
|-- docker-compose.yml
|-- env
| |-- db.env #db容器环境变量
| |-- project.env #toomcat容器环境变量
| `-- tomcat.env #tomcat容器环境变量
|-- mysql
| |-- conf
| | `-- mysqld.cnf #mysql配置文件
| |-- data #mysql数据目录
| |-- db_init_sql
| | `-- competitionShare.sql #tomcat项目的数据库表结构
| `-- log #mysql日志文件
`-- tomcat
|-- log #tomcat日志
`-- webapps #tomcat项目存放目录
`-- tomcat_project
```
#### **新建docker项目数据配置存放目录**
```bash
$ mkdir /data/docker_project/test -p
$ cd /data/docker_project/test
```
#### **创建mysql容器使用的目录**
```bash
$ mkdir mysql/{conf,data,db_init_sql,log} -p
$ chmod 777 mysql/log
```
conf:存放mysql配置文件
data:存放mysql数据的目录
db_init_sql:存放的是mysql容器初始化的sql(如建表语句)
log:存放mysql日志
#### **编辑mysql配置文件mysql/conf/mysqld.cnf**
```bash
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
collation-server=utf8_general_ci
pid-file=/var/run/mysqld/mysqld.pid
default-time-zone = '+08:00'
character-set-server=utf8
innodb_buffer_pool_size = 1024M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
```
#### **创建tomcat容器使用的目录**
```bash
$ mkdir tomcat/{log,webapps} -p
```
log:存放tomcat日志
webapps:存放tomcat项目的目录
#### **编辑docker-compose.yml**
```yaml
version: '3'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: db_name
MYSQL_USER: test
MYSQL_PASSWORD: 123456
ports:
- 3306:3306
volumes:
- ./mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
- ./mysql/db_init_sql:/docker-entrypoint-initdb.d
- ./mysql/data:/var/lib/mysql
- ./mysql/log:/var/log
tomcat:
image: tomcat:8.0.53-jre8
restart: always
depends_on:
- db
container_name: test-tomcat
env_file:
- ./env/project.env
environment:
JDBC_URL: jdbc:mysql://db:3306/db_name??characterEncoding=UTF-8
JDBC_USER: test
JDBC_PASS: 123456
ports:
- 8787:8080
volumes:
- ./tomcat/webapps:/usr/local/tomcat/webapps
- ./tomcat/log:/log
```
#### **修改tomcat项目的mysql配置(修改项目里的mysql配置成上面的environment中指定的环境变量)**
```bash
jdbc_url=${JDBC_URL}
jdbc_username=${JDBC_USER}
jdbc_password=${JDBC_PASS}
```
#### **增加环境变量配置文件project.env(该配置为tomcat启动参数)**
```bash
JAVA_OPTS="-Dsupplements.host=supplements"
CATALINA_OPTS=-server -Xms256M -Xmx1024M -XX:MaxNewSize=256m -XX:PermSize=64M -XX:MaxPermSize=256m
```
#### **启动项目**
```bash
$ docker-compose up
```
#### **启动项目后台运行**
```bash
$ docker-compose up -d
```