赞
踩
<!-- Docker maven plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<imageName>${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
(在 build
下添加,而不是 dependencies
)
创建位置如下:
FROM openjdk:15
VOLUME /tmp
ADD boot-web-0.0.1.jar /app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
(即基于jdk15,添加项目jar包,名字要和打包好的jar包一致)
version: "3"
services:
webapp:
image: ppppk/tttm:1.0
ports:
- "8080:8080"
volumes:
- "/data"
depends_on:
- redis
- mysql
redis:
image: redis:6.2.5
restart: always
privileged: true
ports:
- "6389:6379"
volumes:
- /home/pan/tttm/redis/redis.conf:/etc/redis/redis.conf
- /home/pan/tttm/redis/data:/data
- /home/pan/tttm/redis/redis.log:/redis/redis.log
command: redis-server /etc/redis/redis.conf
mysql:
image: mysql:8.0
restart: always
command: --default-authentication-plugin=mysql_native_password --innodb-use-native-aio=0
environment:
MYSQL_ROOT_PASSWORD: "123456"
ports:
- "3307:3306"
volumes:
- "/home/pan/tttm/mysql/data:/var/lib/mysql"
- "/home/pan/tttm/mysql/my.cnf:/etc/my.cnf"
部分解释如下
无论是mysql还是redis的挂载目录,均要自己修改,设置在自己易于寻找的位置(可以先看四)
- redis的挂载目录
(1)第一个用于修改redis的配置信息,如使外部可连接,添加密码等(模板需要在官网下载,与容器外的conf文件不同
)
(2)第二个用于存储redis数据
(3)第三个用于查看redis的日志- mysql的挂载目录
(1)存储mysql数据
(2)存储mysql配置文件
#Docker
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://xxxxxx/app?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=123456
# docker
# RedisProperties
# database为0-15,否则报错
spring.redis.database=0
spring.redis.host=xxxxx
spring.redis.port=6389
spring.redis.timeout=5000
spring.redis.password=123456
打包后在target就会有jar包
去到项目文件找到它,记得它的名字要和Dockfile的jar包名字相同
http://download.redis.io/redis-stable/
下载并打开,进行如下修改
- 注释掉 bind 127.0.0.1
- protected-mode yes 改为 no
- appendonly no 改为 yes(持久化,我还没有改)
- requirepass改为与上面application.properties中redis的密码
把上述的jar包,redis.conf,Dockerfile,docker-compose.yml放到相应位置
下面展示我的文件目录
进入目录,执行如下命令
docker build -t ppppk/ttm:2.0 .
(名字要与yml的名字一致)
接着执行如下命令查看所有的镜像
docker images
发现
ppppk/tttm
已创建好
仍在此目录,执行如下命令,一键部署
mysql
与redis
镜像并启动
docker-compose up
打开两个连接,一个连接本地数据库,一个连接远程数据库 (下图为远程数据库连接)
在本地数据库上导出sql文件
并把sql文件放在远程连接的询问框,执行即可
由于现在的数据仅为用户的登录ticket,并不需要持久化,所以不需要进行,待以后补充
如果上述操作都没有问题,可以打开网页查看你的网址了!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。