首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头工人-为本地Spring Boot开发撰写

码头工人-为本地Spring Boot开发撰写
EN

Stack Overflow用户
提问于 2020-01-16 10:04:31
回答 2查看 3.3K关注 0票数 0

我有下面的docker-复合文件设置以及一个相关的Dockerfile。

docker-compose.yml

代码语言:javascript
复制
version: '3'
services:
   vault:   
   springboot-app:
    build:
      dockerfile: ./Dockerfile
    restart: always
    ports:
      - "8080:8080"
    environment:
       - "SPRING_PROFILES_ACTIVE=local"

Dockerfile

代码语言:javascript
复制
FROM maven:3.5.2-jdk-8-alpine AS MAVEN_BUILD

COPY pom.xml /build/
COPY src /build/src/

WORKDIR /build/

RUN mvn -B -U -e clean verify 

FROM openjdk:8-jre-alpine

WORKDIR /

COPY --from=MAVEN_BUILD /build/target/MyApp-0.0.1-SNAPSHOT.jar /

ENTRYPOINT ["java", "-jar", "MyApp-0.0.1-SNAPSHOT.jar"]

当我运行docker时,我的应用程序现在运行良好。我想知道我需要做什么更改才能在代码更改的基础上重新构建spring引导应用程序?在我的pom文件中,我有如下所示的spring maven-plugin设置,并且我指定了spring devtools依赖项

代码语言:javascript
复制
       <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <excludeDevtools>false</excludeDevtools>
            </configuration>
        </plugin>

在这方面任何帮助都是非常感谢的。

谢谢达米恩

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-28 16:03:50

也许不是答案,但是

您是否有任何特定的用例在DockerFile中使用2个码头映像。?如果,您可以将构建步骤从dockerfile移出,然后从脚本构建( invoke build)和调用docker -组合来将构建复制到docker容器并启动容器。当复制时,您可能会遇到问题,对接者会使用对接文件夹而不是项目文件夹。

票数 1
EN

Stack Overflow用户

发布于 2020-06-04 22:27:27

对于生产应用程序,您可以使用Java映像以及已编译的.jar文件。

对于本地开发,使用Maven码头图像代替。当您对应用程序进行更改时,它可以运行源代码并进行编译。您可以使用docker-compose.yml文件,例如:

代码语言:javascript
复制
version: '3.1'
services:
  backend:
    image: maven:3.6.3-jdk-8
    command: mvn spring-boot:run
    ports:
      - 8080:8080
    volumes:
      - .:/usr/src/mymaven:rw
    working_dir: /usr/src/mymaven

一定要设置卷,以便将源代码映射到Docker容器,并设置Maven查找pom.xml的工作目录。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59767129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档