我有一个在本地环境中运行良好的应用程序。用它构建docker映像-仍然可以正常运行。
然后,我将此应用程序和此docker映像部署到ubuntu服务器(如果有所帮助,则为EC2)。具有相同应用程序的相同容器无法在其中启动。
从我看到的情况来看,tomcat第一次在8080开始运行良好,并且在刷新上下文后,它无法以异常“正在使用地址”启动
应用程序没有自定义@Configuration类。为什么会发生这种情况,我该如何解决?
Dockerfile:
FROM adoptopenjdk/openjdk12
EXPOSE 8080
ADD build/libs/hydroapi*.jar /app/hydroapi.jar
CMD java -jar /app/hydroapi.jar
等级:
plugins {
id 'org.springframework.boot' version '2.1.3.RELEASE'
id 'java'
}
apply plugin: 'io.spring.dependency-management'
sourceCompatibility = '11'
configurations {
developmentOnly
runtimeClasspath {
extendsFrom developmentOnly
}
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
implementation group: 'io.springfox', name: 'springfox-data-rest', version: '2.9.2'
compile group: 'com.google.guava', name: 'guava', version: '23.0'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'org.postgresql:postgresql'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
testImplementation 'org.springframework.security:spring-security-test'
}
bootJar {
baseName = 'hydroapi'
version = '0.1.0'
}
主应用程序:
@SpringBootApplication
public class HydroapiApplication {
public static void main(String[] args) {
SpringApplication.run(HydroapiApplication.class, args);
}
}
我尝试运行将胖子放在服务器上的应用程序
docker-compose up --build