部署前准备
1、使用maven进行后端项目打包
将打包后的jar包上传到服务器的自定义目录下
2、通过docker pull拉取一个jdk镜像,执行docker images查看是否拉取成功
注意:如果出现跨域的问题,可以在入口文件加入以下代码
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); // 允许cookies跨域
config.addAllowedOrigin("*");// 允许向该服务器提交请求的URI,*表示全部允许。。这里尽量限制来源域,比如http://xxxx:8080 ,以降低安全风险。。
config.addAllowedHeader("*");// 允许访问的头信息,*表示全部
config.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
config.addAllowedMethod("*");// 允许提交请求的方法,*表示全部允许,也可以单独设置GET、PUT等
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
上线部署
1、使用Dockerfile构建一个我们后端项目的镜像。
创建一个Dockerfile文件,此文件没有后缀,文件内容如下
##所依赖的镜像,这里是上面docker images所看到镜像的名字+版本号
FROM sw-hyren-openjdk:1.8.0
##时区
RUN echo "Asia/Shanghai" > /etc/timezone
##
##将主机上的jar包放到容器的根目录下
ADD stdglprj-0.0.1-SNAPSHOT.jar /stdglprj-0.0.1-SNAPSHOT.jar
##运行jar包的相关指令
ENTRYPOINT [ "java","-Dfile.encoding=utf-8", "-jar", "/stdglprj-0.0.1-SNAPSHOT.jar" ]
2、cd进入你存放Dockerfile文件的目录下
这里是我存放Dockerfile文件的目录
cd /deepin/userdata/weirui/data1/project/hyrenv5/hrsapp/dist/java
3、在当前目录下执行如下命令,构建镜像
docker build -t sw-hyren-java:latest .
-t:给镜像命名
sw-hyren-java:latest:镜像名:版本号
.:读取上下文路径的 dockerfile
执行docker images可以看到我们刚刚构建成功的镜像
4、启动容器
sudo docker run --name my-java -d -p 8087:8087 -v /deepin/userdata/weirui/data1/project/hyrenv5/hrsapp/dist/java/stdglprj-0.0.1-SNAPSHOT.jar:/stdglprj-0.0.1-SNAPSHOT.jar -v /deepin/userdata/weirui/data1/project/hyrenv5/hrsapp/dist/java/doc:/doc -v /usr/share/fonts:/usr/share/fonts sw-hyren-java:latest
–name my-java:给容器起名字叫my-java
8087:8087:将容器的8087端口映射到主机的8087端口上
-v:挂载主机的文件和容器的文件,达到修改主机文件可以同步修改容器里文件的效果(我后面两个-v是挂载上传文件和字体的)
执行docker ps可以看到容器是否启动成功,我这里已经可以看到我们刚刚启动成功的容器
到此后端就发布成功了