项目场景见:【记录】Springboot项目集成docker实现一键部署-CSDN博客
问题:
1.docker images 有tag为none的镜像存在。
2.有同事反馈,第一次启动docker-compose up -d 项目无法正常启动。后续正常。
原因:
1.服务中指定了镜像mysql:5.7,而mysql-dockerfile中也指定了,同时dockerfile中对镜像做了修改,导致出现。解决办法:删除此处image。
2.第一次启动docker-compose up -d 项目无法正常启动。经过调查发现可能是因为mysql服务启动后但是数据还未初始化完成,这是项目启动第一时间获取数据源失败导致。
解决办法:做了一个延迟处理,即mysql服务启动后一段时间再启动web应用服务。
具体docker-compose.yml文件修改如下:
其中 entrypoint: ["sh", "-c", "sleep 20 && java -jar weiyi.jar"] 替代了原dockerfile中的启动应用命令,表示延迟20秒执行“ java -jar weiyi.jar”命令。
version : '3'
services:weiyi-mysql:container_name: weiyi-mysqlbuild:context: .dockerfile: mysql-dockerfileports:- "3306:3306"volumes:- ./mysql/conf:/etc/mysql/conf.d- ./mysql/logs:/logs- ./mysql/data:/var/lib/mysqlcommand: ['mysqld','--innodb-buffer-pool-size=80M','--character-set-server=utf8mb4','--collation-server=utf8mb4_unicode_ci','--default-time-zone=+8:00','--lower-case-table-names=1']environment:MYSQL_DATABASE: weiyidbMYSQL_ROOT_PASSWORD: xxxxxweiyi-server:container_name: weiyi-serverbuild:context: .dockerfile: weiyi-dockerfileports:- "80:80"volumes:- ./weiyi/logs:/home/weiyi/logs- ./weiyi/uploadPath:/home/weiyi/uploadPathdepends_on:- weiyi-mysqlentrypoint: ["sh", "-c", "sleep 20 && java -jar weiyi.jar"]
启动测试无问题: