部署前准备

1、使用maven进行后端项目打包

springboot运行sql Springboot运行docker容器_java


将打包后的jar包上传到服务器的自定义目录下

springboot运行sql Springboot运行docker容器_spring boot_02


2、通过docker pull拉取一个jdk镜像,执行docker images查看是否拉取成功

springboot运行sql Springboot运行docker容器_springboot运行sql_03


注意:如果出现跨域的问题,可以在入口文件加入以下代码

@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可以看到我们刚刚构建成功的镜像

springboot运行sql Springboot运行docker容器_spring boot_04


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可以看到容器是否启动成功,我这里已经可以看到我们刚刚启动成功的容器

springboot运行sql Springboot运行docker容器_java_05


到此后端就发布成功了