使用Docker部署Ktor服务
使用Docker部署Ktor服务
❄️2winter最近写教务系统课表爬虫,找到一段java的青果代码,是android端的,我做的是小程序,只能放到服务端了,但是青果的java版加密算法对于PHP而言,实现难度太大,我又不会java,最后,选择了部署到服务端,使用kotlin,ktor是kotlin官方的框架,支持,client与service,两个都用了,先用service提供加密,然后client去提交,最后返回给小程序JSON。
服务器用的ubuntu所以,就用了docker,因为我也不会java的服务配置。。。
当写完ktor的程序后,在gradle安装一个shadow插件,负责把kotlin打包成一个jar,然后再部署,首先,Gradle:
1 | classpath "com.github.jengelman.gradle.plugins:shadow:2.0.1" |
应用插件
1 | apply plugin: 'kotlin' |
修改启动主函数:这里注意,如果你的main函数是顶级函数写法,写主函数所在的文件名加上Kt没有点。
1 | mainClassName = "app.ApplicationKt" |
在gradle最后配置shadow
1 | shadowJar { |
然后 Gradlew build 打包jar
准备dockerFile
1 | FROM openjdk:8-jre-alpine |
构建镜像:注意点 上下文路径
1 | docker build -t my-application . |
启动容器
1 | docker run -p 8080:8080 my-application |
然后修改nginx指向8080即可。