idea中使用docker發佈spring boot應用

本文主要記錄一下本身在 idea上使用 docker發佈 spring boot應用

大綱

  1. 開啓docker的遠程訪問
  2. idea安裝docker插件
  3. idea上鍊接遠程docker服務
  4. 新建一個spring boot工程,編寫測試接口
  5. pom.xml添加docker構建插件
  6. 在項目中新建Dockfile文件
  7. idea中構建docker鏡像
  8. 執行鏡像
一、開啓docker遠程訪問

本人使用的阿里雲esc雲服務器,docker的版本是Docker version 19.03.4, build 9013bf5java

1.一、修改docker.server文件,該文件所在的路徑是/lib/systemd/systemspring

cd /lib/systemd/system/
vim docker.server

1.二、修改ExecStart以下所示docker

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

1.三、從新加載配置文件vim

systemctl daemon-reload

1.四、重啓docker服務安全

systemctl restart docker.service

1.五、查看端口是否生效 netstat -nlpt 以下圖所示,可見上面配置的2375端口已經生效
image.pngbash

1.六、進入阿里雲ESC管控臺,添加2375/2375安全組配置服務器

二、idea安裝docker插件

打開idea偏好中的插件,在其中搜索docker插件進行安裝,因爲本人的idea插件已經包含了docker插件,跳過此步驟併發

三、在idea上鍊接遠程docker服務

屏幕快照 2019-11-17 下午10.40.46.png
若是顯示Connection succesful則表示已經和遠程docker服務鏈接成功app

四、新建一個spring boot工程,編寫測試接口

測試接口代碼以下maven

@RestController
public class HelloController {
    @GetMapping(value = "/hello")
    public String hello() {
        return "docker & spring boot";
    }
}

執行maven打包命令mvn clean package -DskipTests=true

五、pom.xml添加docker構建插件
<properties>
     <java.version>1.8</java.version>
     <docker.image.prefix>demo</docker.image.prefix>
</properties>

...省略
<build>
    <plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>1.1.0</version>
            <configuration>                             
                <imageName>
                    ${docker.image.prefix}/${project.artifactId}
                </imageName>
                <dockerDirectory></dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
    </plugins>
</build>
六、在項目中新建Dockfile文件

6.一、編寫dockerfile文件

FROM java:8
VOLUME /tmp
COPY target/demo-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c "touch /demo.jar"
EXPOSE 8089
ENTRYPOINT ["java","-jar","demo.jar"]

6.二、點擊加號按鈕,選擇docker,選擇dockerfile,填寫鏡像的標籤以及綁定的端口
屏幕快照 2019-11-17 下午11.00.24.png

七、在idea中構建docker鏡像

點擊運行該dockerfile
屏幕快照 2019-11-17 下午11.03.25.png
上面的操做會進行鏡像的構建,鏡像構建成功以後會出現以下的提示,至此鏡像構建成功併發送至遠程的服務器上,並自動執行了該鏡像。

屏幕快照 2019-11-17 下午11.06.09.png

注意點:因爲我是屢次進行相同標籤的構建,在服務器上執行docker images操做會出現以下的狀況
屏幕快照 2019-11-17 下午11.11.52.png

其中出現了REPOSITORY<none> TAG也是<none>這一點很不友好,實際的開發中須要注意。

相關文章
相關標籤/搜索