前沿
- 本次教材是基于本地 idea 集成 docker 插件,然后利用本地的 Dockerfile文件实现发布 web 项目到服务器。
第一步需要下载 docker 插件
第二步编写Dockerfile文件
#项目所依赖的jdk镜像
FROM openjdk:8
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
#将maven构建好的jar添加到镜像中,第二个为别名
#ADD target/*.jar app.jar
#复制上下文目录下的target/springboot-demo-docker-0.0.1-SNAPSHOT.jar 到容器里
COPY target/ql-center-endpoint-1.0-SNAPSHOT.jar app.jar
# 设置环境变量,指定使用的配置文件
ENV SPRING_PROFILES_ACTIVE=online
ENV TZ=Asia/Shanghai
#暴露的端口号(和项目端口号等同)
EXPOSE 8087
# 开放远程调试端口
#ENV JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=8002,server=y,suspend=n"
#EXPOSE 8002
#镜像所执行的命令
ENTRYPOINT exec java -jar -Xmx512m -Xms512m app.jar
需要注意的几点:
● 此Dockerfile文件 存放位置是:项目启动@SpringBootApplication 的 src 同层,如下图
● ENV SPRING_PROFILES_ACTIVE=online:可以指定使用一份线上的文件配置:application-online.properties
● 开放远程调试端口,开发的时候可能需要,上线的时候一定要关闭。
第三步编写 docker 发布脚本
点+ 添加一条 maven 命令:
clean package -Dautoconfig.interative=false -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
注意点:
● 添加的时候选择 Dockerfile。
● 第一个 DockerFile点后面的拉下剪头,理论上会自动识别出来。
● Image tag:取一个自己喜欢的名字。模板 xxx:<版本号>
● Container name:容器名字取一个。
● Environment variables:添加不同环境使用不同的配置文件
● Run options: 相当于我们的 docker run 后面的一些参数
● Before launch:就是在执行发布之前需要干嘛,这边建议就是编译下整个项目
○ clean package -Dautoconfig.interative=false -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
第四步编写 docker 服务器连接脚本,此处采用 tcp 的方式,
注意服务器上面需要开通本机ip白名单,和开通端口号:2375,不然无法连接通
到此为止就可以愉快的编译发布!