[英]how to authenticate project that is deployed on gcp with secret manager in spring boot
我決定在 gcp 中使用秘密管理器來獲取來自某些外部 API 的憑據,所以我在本地測試東西是 gcloud auth application-default login,在此之前我在本地下載了 gcp cli。 在部署應用程序時,我的應用程序上下文沒有加載。 這是 build 的一部分:
這是測試一些基本的上下文負載:
@SpringBootTest
class FlightApiApplicationTests {
@Test
void contextLoads() {
}
}
這是我的碼頭文件:
FROM gradle:7.4.1-jdk17-alpine AS TEMP_BUILD_IMAGE
ENV APP_HOME=/usr/app/
WORKDIR $APP_HOME
COPY build.gradle settings.gradle $APP_HOME
COPY gradle $APP_HOME/gradle
COPY --chown=gradle:gradle . /home/gradle/src
USER root
RUN chown -R gradle /home/gradle/src
RUN gradle build || return 0
COPY . .
RUN gradle clean build
FROM openjdk:17
ENV ARTIFACT_NAME=FlightApi-0.0.1-SNAPSHOT.jar
ENV APP_HOME=/usr/app/
WORKDIR $APP_HOME
COPY --from=TEMP_BUILD_IMAGE $APP_HOME/build/libs/$ARTIFACT_NAME .
EXPOSE 8080
ENTRYPOINT exec java -jar ${ARTIFACT_NAME}
我也會在 gradle 中添加一些依賴項:
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation "org.springframework.boot:spring-boot-starter-actuator"
//amadeus implementation
implementation 'com.google.code.gson:gson:2.9.0'
implementation "com.amadeus:amadeus-java:5.9.0"
implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager:3.3.0'
implementation platform('com.google.cloud:libraries-bom:25.3.0')
implementation 'com.google.cloud:google-cloud-storage'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//Junit
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}
問題是我應該以某種方式在 dockerfile 中導出這個谷歌默認憑據嗎? 或者也許我應該為使用 gcp 驗證 oauth 提供一些服務? 它不應該自動找到,因為我在 gcp 構建服務中構建它。 我對任何想法持開放態度,那些 gcp 文檔對我來說是完全無法理解的,或者只是關於任何事情的信息太多。 我正在使用jdk17這個項目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.