docker之spriingbooti部署篇

一.****下载 idea支持的dock插件包****

地址为https://plugins.jetbrains.com/plugin/7724-docker-integration注意不是越高越好要看自己的idea版本,与自己版本发布时间接近靠后点就行

1.打开idea

file–>setting–>Plugins–>install plugin from disk(在下面)–>选着你下下来的压缩包(红色说明不行,换个版本试试)

或者按ctrl+alt+s进入设置-》Plugins->搜索docker-integration

2.设置docker

file–>setting–>Build,Execution,Deployment–>docker–>填写name,选择tcp socket填写Engine API URL为:tcp://192.168.44.104:2375–>点击apply挨着上面框会提示Connection successful,如图
img

注意:以上步骤需开启docker远程访问才可以进行

3.编写Dockfile文件

FROM hub.c.163.com/library/java:latest
VOLUME /tmp
ADD target/shixun-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
  1. Spring Boot 项目的运行依赖 Java 环境,所以我自己的镜像基于 Java 镜像来构建。
  2. 考虑到 Docker 官方镜像下载较慢,我这里使用了网易提供的 Docker 镜像。
  3. 由于 Spring Boot 运行时需要 tmp 目录,这里数据卷配置一个 /tmp 目录出来。
  4. 将本地 target 目录中打包好的 .jar 文件复制一份新的 到 /app.jar。
  5. 最后就是配置一下启动命令,由于我打包的 jar 已经成为 app.jar 了,所以启动命令也是启动 app.jar。

或者

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD /target/eureka_server-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

以下是命令说明
FROM frolvlad/alpine-oraclejdk8:指Docker Hub上官方提供的java镜像,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用。
VOLUME /tmp:创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。
ADD eureka_server-0.0.1-SNAPSHOT.jar app.jar:将应用jar包复制到/app.jar
ENTRYPOINT:表示容器运行后默认执行的命令

4.pom文件配置

<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>1.2.0</version>
    <executions>
        <execution>
            <id>build-image</id>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <dockerHost>http://远程IP:2375</dockerHost>
        <imageName>javaboy/${project.artifactId}</imageName>
        <imageTags>
            <imageTag>${project.version}</imageTag>
        </imageTags>
        <forceTags>true</forceTags>
        <dockerDirectory>${project.basedir}</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
            </resource>
        </resources>
    </configuration>
</plugin>

插件注释:

  1. 首先在 execution 节点中配置当执行 mvn package 的时候,顺便也执行一下 docker:build
  2. 然后在 configuration 中分别配置 Docker 的主机地址,镜像的名称,镜像的 tags,其中 dockerDirectory 表示指定 Dockerfile 的位置。
  3. 最后 resource 节点中再配置一下 jar 的位置和名称即可。

5.打包项目

项目打包为jar包

执行命令 mvn clean pakcage

使用idea的maven插件

6. 项目打包成功之后,我们就可以在 Docker 容器中看到我们刚刚打包成的镜像了

7.执行docker运行容器对应步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值