方案1:
windows下打包程序,然后,上传到linux下,生成docker镜像,然后执行。
首先:
由于是采用Gradle管理的项目,打包的时候需要执行build任务。执行完成后,再build\libs目录下应该生成项目名-0.0.1-SNAPSHOT.jar文件。如果没有该文件,尝试使用assemble任务。
在cmd下,可以尝试执行java -jar 项目名-0.0.1-SNAPSHOT.jar, 如果打包正常,程序应该能够启动。
曾经遇到的BUG是,生成的文件执行的时候找不到主类(Main.class),原因是执行的任务不对,生成的文件名(项目名-0.0.1-SNAPSHOT-plain.jar)也不对,文件名中多了一个plain。说明只是用户代码,缺少响应的spring boot的内容。
第二:
登录linux,建立一个文件夹,将打包好的jar包上传进来。
编辑Docker文件。
执行docker build命令,生成镜像。
执行docker run,
docker run -d -p 9002:8080 app:latest
指定端口。注意,左边的是暴露给外网的端口,右边是内网端口。-d表示后台运行。