首先docker拉取mysql、redis、tomcat、maven的镜像,直接下载官方推荐的就好
$ docker pull mysql
$ docker pull redis
$ docker pull tomcat
$ docker pull maven
然后,将项目代码上传至/data/web/cupboard中,检查一下,应该有java和html的目录。

编译代码
$ docker run --rm -v /data/web/cupboard/java:/data annat/maven mvn package -Dmaven.test.skip=true
接着,启动容器:
$ docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
$ docker run -p 6379:6379 --name redis -d redis redis-server --appendonly yes
进入数据库中,添加一个cupboard账号,设置密码为123456; 并创建cupboard数据库
$ docker exec -it mysql bash
$ mysql -uroot -p123456
mysql> CREATE USER 'cupboard'@'%' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'cupboard'@'%' WITH GRANT OPTION;
mysql> flush privileges;
mysql> create database cupboard;
mysql> exit;
$ exit
将cupboard.sql上传至/root目录中,接着,拷贝cupboard.sql至docker;然后进入容器,导入数据库
# 拷贝cupboard.sql至docker;
$ docker cp /root/cupboard.sql mysql:/root/cupboard.sql
# 进入容器
$ docker exec -it mysql bash
# 进入数据库
$ mysql -uroot -p123456
mysql> use cupboard;
mysql> source /root/cupboard.sql;
# 导入结束后
mysql> exit;
$ exit
接着,可以启动tomcat了:
$ docker run --name cupboard -p 8006:8080 -p 7778:7778 -v /data/web/cupboard/html:/usr/local/tomcat/webapps/ROOT -v /data/web/cupboard/java/target/ROOT/WEB-INF:/usr/local/tomcat/webapps/ROOT/WEB-INF --link mysql:mysql --link redis:redis -d tomcat
然后安装、配置nginx
$ yum install nginx
$ cd /etc/nginx
$ vim nginx.cnf
# 然后找到server的配置,改成这样(或者从邮箱下载nginx.cnf,然后替换到相应位置)
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /data/web/cupboard/html;
# Load configuration files for the default server block.
index index.html index.php index.htm;
location ~ ^.*WEB-INF.*$ {
deny all;
}
location ~ ^.*Application.*$ {
deny all;
}
location ~ ^.*git.*$ {
deny all;
}
location ~ \.sh$ {
deny all;
}
location ~ \.jsp$ {
deny all;
}
location ~ \.php$ {
deny all;
}
location / {
try_files /maintain.html $uri $uri/ @tomcat;
}
location @tomcat {
proxy_pass http://127.0.0.1:8006;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# 按i进行编辑,编辑完成后,按esc,再按:wq退出。vim不会的话,搜索。
# 退出编辑后,重启nginx
$ systemctl restart nginx
尝试访问一下接口,看看是否部署成功
网友评论