项目场景见:【记录】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-mysql
build:
context: .
dockerfile: mysql-dockerfile
ports:
- "3306:3306"
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/logs
- ./mysql/data:/var/lib/mysql
command: [
'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: weiyidb
MYSQL_ROOT_PASSWORD: xxxxx
weiyi-server:
container_name: weiyi-server
build:
context: .
dockerfile: weiyi-dockerfile
ports:
- "80:80"
volumes:
- ./weiyi/logs:/home/weiyi/logs
- ./weiyi/uploadPath:/home/weiyi/uploadPath
depends_on:
- weiyi-mysql
entrypoint: ["sh", "-c", "sleep 20 && java -jar weiyi.jar"]
启动测试无问题: