2015-10-27 34 views
0

我創建了一個基本的彈簧啓動應用程序,我使用docker-maven-plugin 來構建docker鏡像。Spring boot docker插件需要每次都刪除圖像

每當我對應用程序進行更改時,我必須移除容器並重新啓動它。 docker rm -f <container-name> docker run -p 8080:8080 -d <IMAGE> --name some-app

有沒有什麼辦法可以重新啓動容器,新的更改纔會生效。

這是我的pom文件中的docker插件。

<plugin> 
      <groupId>com.spotify</groupId> 
      <artifactId>docker-maven-plugin</artifactId> 
      <version>0.2.3</version> 
      <configuration> 
       <imageName>${docker.image.prefix}/${project.artifactId}</imageName> 
       <dockerDirectory>src/main/docker</dockerDirectory> 
       <resources> 
        <resource> 
         <targetPath>/</targetPath> 
         <directory>${project.build.directory}</directory> 
         <include>${project.build.finalName}.jar</include> 
        </resource> 
       </resources> 
      </configuration> 
     </plugin> 

Dockerfile

FROM java:8 
VOLUME /tmp 
ADD demo-0.0.2-SNAPSHOT.jar basic-boot-app.jar 
RUN bash -c 'touch /basic-boot-app.jar' 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/basic-boot-app.jar"] 

回答

1

嘗試在給定的方式結構的Java aplication的

Demo 
└── src 
| ├── main 
| │ ├── java 
| │ │ └── org 
| │ │  └── demo 
| │ │   └── App.java 
| │ └── resources 
| │  └── application.properties 
| └── test 
|   └── java 
|    └── org 
|     └── demo 
|       └── App.java 
├──── Dockerfile 
├──── pom.xml 
pom.xml中的

內容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.executablejar</groupId> 
    <artifactId>demo</artifactId> 
    <packaging>jar</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>demo Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <java-version>1.8</java-version> 
     <docker.image.prefix>springDemo</docker.image.prefix> 
    </properties> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.3.RELEASE</version> 
    </parent> 

    <dependencies> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
     <finalName>demo</finalName> 
    </build> 

</project> 

Dockerfile的內容

FROM java:8 
EXPOSE 8080 
ADD /target/demo.jar demo.jar 
ENTRYPOINT ["java","-jar","demo.jar"] 

命令用於構建和運行圖像

  • 轉到親目錄ject.Lets說d:/演示
$ cd D/demo 
$ mvn clean install 
$ docker build demo . 
$ docker run -p 8080:8080 -t demo 

在這裏你可以找到視頻:Spring Boot with Docker

相關問題