部署后端
- 创建mysql目录如下,上传对应的文件
运行以下命令
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
-v ./mysql/data:/var/lib/mysql \
-v ./mysql/conf:/etc/mysql/conf.d \
-v ./mysql/init:/docker-entrypoint-initdb.d \
mysql
2.通过命令创建一个网络
docker network create hmall
通过命令让hmall和mysql在同一网络中
docker network connect hmall mysql
可通过docker network ls查看网络,docker exec -it 容器名 bash 进入容器,即可ping同一个网络中的容器。
3.修改application-local.yaml
hm:
db:
host: your ip # 修改为你自己的虚拟机IP地址
pw: 123 # 修改为docker中的MySQL密码
之后对hmall打包,上传hm-service目录下的Dockerfile和hm-service/target目录下的hm-service.jar
4.上传镜像到root目录之后,构建镜像,在root目录下执行命令
docker build -t hmall .
运行容器
docker run -d --name hmall --network hmall -p 8080:8080 hmall
5.测试,浏览器访问
http://你的虚拟机地址:8080/hi
http://你的虚拟机地址:8080/search/list
如果出现,欢迎访问黑马商城, 这是您第1次访问,说明服务已启动。
如果返回5xx,可能是数据库连接问题,请检查mysql是否创建成功以及数据表是否存在。
请确保8080端口已开放,且未被占用。
部署前端
上传前端项目,目录如下
执行命令
docker run -d \
--name nginx \
-p 18080:18080 \
-p 18081:18081 \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/nginx.conf:/etc/nginx/nginx.conf \
--network hmall \
nginx
浏览器访问http://你的虚拟机ip:18080如果正常出现页面,即为成功。
请确保18080,18081端口开放