Приложение Spring работает при локальной сборке и копировании в докер, но не при сборке внутри докераJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Приложение Spring работает при локальной сборке и копировании в докер, но не при сборке внутри докера

Сообщение Anonymous »

Я пытаюсь собрать и запустить приложение Springboot внутри Docker.
Сначала я просто собирал JAR-файл локально, а затем копировал и запускал его в образе Docker, но теперь я также хочу создать файл JAR внутри Docker.
Конфигурация

Код: Выделить всё

package com.qcphotos.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class SecurityConfiguration {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(requests -> {
requests.requestMatchers(
HttpMethod.GET,
"/products",
"products/parseUrl",
"/products/popular",
"/products/viewCount"
)
.permitAll()
.requestMatchers(
HttpMethod.GET,
"/affiliates/redirect",
"/affiliates/url"
)
.permitAll()
.requestMatchers(
HttpMethod.GET,
"/collections/{collectionId}",
"/collections/{collectionId}/products"
)
.permitAll()
.requestMatchers(
HttpMethod.GET,
"/users/{userId}"
)
.permitAll()
.requestMatchers(
HttpMethod.GET,
"/storefronts",
"/shippingAgents"
)
.permitAll()
.requestMatchers("/login/oauth2/code/discord", "/")
.permitAll()
.anyRequest()
.authenticated();
})
.csrf(csrf ->  csrf.disable())
.oauth2Login(Customizer.withDefaults());

return http.build();
}
}
Application.yml

Код: Выделить всё

spring:
security:
oauth2:
client:
registration:
discord:
client-id: 'myClientId'
client-secret: 'mySecretCode'
authorization-grant-type: authorization_code
scope:
- identify
- email
redirect-uri: '{baseUrl}/login/oauth2/code/discord'
client-name: Discord
provider:
discord:
authorization-uri: https://discordapp.com/api/oauth2/authorize
token-uri: https://discordapp.com/api/oauth2/token
user-info-uri: https://discordapp.com/api/users/@me
user-name-attribute: username
Приложение

Код: Выделить всё

package com.qcphotos;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;

@SpringBootApplication(exclude = {
RepositoryRestMvcAutoConfiguration.class
})

public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Локальная сборка
Dockerfile
Я использовал пакет mvn clean для создания jar-файла

Код: Выделить всё

FROM openjdk:21
WORKDIR /app
COPY /target/rest-api-1.0-SNAPSHOT-jar-with-dependencies.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
Результат (рабочий):
https://gist.github.com/Eli-Chandler/28 ... 78b5ecfe8e
Сборка Docker
Dockerfile

Код: Выделить всё

# Build
FROM maven:3.9.7-eclipse-temurin-21 AS build
COPY ./backend /src
WORKDIR /src
RUN mvn clean package

# Run
FROM openjdk:21
WORKDIR /app
COPY --from=build /src/rest-api/target/rest-api-1.0-SNAPSHOT-jar-with-dependencies.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
Результат (не работает):
https://gist.github.com/Eli-Chandler/d2 ... abe813d63c

Подробнее здесь: https://stackoverflow.com/questions/786 ... but-not-wh
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»