【问题标题】:Spring boot docker plugin requires removing the image everytimeSpring boot docker 插件每次都需要删除镜像
【发布时间】:2016-01-26 12:27:41
【问题描述】:

我创建了一个基本的 Spring Boot 应用程序,我正在使用 docker-maven-plugin 构建 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"]

【问题讨论】:

    标签: java eclipse maven docker spring-boot


    【解决方案1】:

    按既定方式尝试

    java应用的结构

    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"]
    

    构建和运行映像的命令

    • 进入项目目录,比如说D:/Demo
    $ cd D/demo
    $ mvn clean install
    $ docker build demo .
    $ docker run -p 8080:8080 -t demo
    

    在这里你可以找到视频:Spring Boot with Docker

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 2022-12-26
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      相关资源
      最近更新 更多