在Windows上无docker直接将基于Solon的jar包通过IDEA部署到Linux的docker上

发布时间 2023-06-11 11:03:40作者: 想和闪电一样

为何会选择学习solon?

spring boot对于我开发小企业应用太重,启动太慢,下班太晚!

为何都用windows,还想着不安装docker desktop

洁癖,运行路径能短就短。

步骤(以solon官网的hello word为例)

1、下载hello world代码 传送阵:点击我
2、通过IDEA打开代码,并运行它(我是下载基于maven版本的)。
3、本地浏览器测试ok,没问题。 单元测试运行没问题,ok。
4、运行命令:maven package(IDEA右侧也有maven控制栏 或者直接控制台(Terminal[Alt+F12])里运行一下)
5、在项目根目录下会生成一个target文件夹,里面会有一个jar包生成(我这里是helloworld_jdk8.jar)
6、在项目根目录下添加DockerFile文件,里面填写的内容如下:

FROM adoptopenjdk/openjdk11
MAINTAINER solon
WORKDIR /server
ENV SERVER_PORT=8090
EXPOSE ${SERVER_PORT} ${API_PORT}
ENV TZ=Asia/Shanghai
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ADD ./target/helloworld_jdk8.jar ./app.jar
ENTRYPOINT ["java","-Xms128m" ,"-Xmx1024m","-jar", "app.jar"]

7、运行此文件(懵逼了?IDEA中打开此文件,会在行号第一行这里有个绿色的运行按钮)
8、第一次运行,要在弹出的菜单中选择 New Run Configuration

9、这时,会弹出一个对话框,如下:

10、我这里已经添加好Server(服务器)了,如果你以前没加过,这里可以加一下。

注意:加server的时候选择ssh即可,不用开启docker的远程访问!!!(真香)


注意:填好server信息后,记得test connection,通过才行。如果是密码模式,记得勾选“Save password”
11、添加好后,选择刚刚添加的服务器。然后回到如下对话框

12、填入Image tag(镜像标签)
13、填入Container name(容器名称),示例:

14、重点来了,我们这是web应用,运行容器后不是需要外部访问吗? 那需要给这个container的端口映射出来(你是不是疑惑DockerFile中已经暴露了8090端口了吗?对的,那里是暴露了,但是外部访问的端口我们没设定,那端口会被docker随机映射的),点击Run右边的Modify菜单,选择Bind Port功能,然后填入:8090 8090 tcp 。 如下所示:


15、ok,点击Apply,然后再运行此文件,idea就会将我们的包发布到Linux的docker中(第二次运行就相当方便了)。
另外的技巧:每次运行前,都要手动点击package一下,真麻烦!


ok,一键发布了,请享用!!!