设置默认 URL Spring Boot App 在部署中开始

Posted

技术标签:

【中文标题】设置默认 URL Spring Boot App 在部署中开始【英文标题】:Set default URL Spring Boot App starts with in deployment 【发布时间】:2021-11-24 07:43:28 【问题描述】:

我有一个使用server.servlet.context-path=/api 在端口 5000 上运行的 Spring Boot 应用程序。

当应用启动时,在我的机器上,我可以在http://localhost:5000/api 访问静态欢迎页面 (index.html) 没问题。

我将此应用程序部署在 Docker 容器中的 AWS CodePipeline 上。问题是,当我在http://my-api-env.eba-uatdpxjr.us-east-2.elasticbeanstalk.com/api 访问我的应用程序的端点时,它工作正常,但我想拥有它,这样我的部署环境的根 url 就不需要手动将/api 添加到末尾访问我的服务。

如何使已部署应用的 URL http://my-api-env.eba-uatdpxjr.us-east-2.elasticbeanstalk.com 自动包含应用的上下文路径 /api 并呈现静态欢迎页面?

Dockerfile

FROM openjdk:8-jdk-alpine
COPY /target/RestApi-0.0.1-SNAPSHOT.jar RestApi-0.0.1-SNAPSHOT.jar
EXPOSE 5000
ENTRYPOINT ["java", "-jar", "/RestApi-0.0.1-SNAPSHOT.jar"]

docker-compose.yml

version: "1.0"
services:
  api_service:
    build: .
    restart: always
    ports:
      - 5000:5000

buildspec.yml

version: 0.2

phases:
  build:
    commands:
      - java -version
      - mvn clean package
artifacts:
  files:
    - 'Dockerfile'
    - target/RestApi-0.0.1-SNAPSHOT.jar

application.properties

# JPA Settings
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create

# Configure Port and Context Path
server.port=5000
server.servlet.context-path=/api

# In the master application.properties file we can control which Spring Profile we want to use
spring.profiles.active=dev

# Set Welcome view to index.html page
spring.mvc.view.suffix = .html

【问题讨论】:

【参考方案1】:

为什么完全删除上下文路径(默认为 "/")对您不起作用?

【讨论】:

这对我来说很好,但我想知道是否有办法默认公开上下文路径。

以上是关于设置默认 URL Spring Boot App 在部署中开始的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot 默认日志位置

Vue + Spring Boot 项目实战笔记

dockerized postgres 和 dockerized Spring boot app

Spring Boot Jersey 和监控 URL

Spring Boot Web项目之参数绑定

spring boot 项目设置默认访问路径方法