[英]How to set variables from (.gitlab-ci.yml) in application.properties in non Spring application?
[英]How to include hibernate connection string in application.properties into .gitlab-ci.yml
我一直在嘗試gitlab ci / cd來使用Hibernate的spring-boot應用程序。 但是不幸的是我的gitlab ci / cd構建階段失敗了。 我需要知道如何將application.properties文件中包含的休眠連接字符串包含在.gitlab-ci.yml中
spring.datasource.url= jdbc:mysql://my_ip:3306/db_test?useSSL=false&serverTimezone=UTC&useLegacyDatetimeCode=false
spring.datasource.username= db_user
spring.datasource.password= password
這是我的.gitlab-ci.yml
image: docker:latest
services:
- docker:dind
stages:
- build
- package
- deploy
build:
image: java:8
stage: build
script:
- ./mvnw package
artifacts:
paths:
- target/unecast-0.0.1-SNAPSHOT.jar
only:
- development
package:
stage: package
script:
- docker build -t registry.gitlab.com/username/application .
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- docker push registry.gitlab.com/username/application
only:
- development
deploy_staging:
stage: deploy
script:
- apk upgrade && apk update
- apk add openssh-client
- apk add sshpass
- sshpass -p "$STAGING_SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $STAGING_SERVER_USER@$STAGING_SERVER docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.gitlab.com
- sshpass -p "$STAGING_SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $STAGING_SERVER_USER@$STAGING_SERVER docker pull registry.gitlab.com/username/application
- sshpass -p "$STAGING_SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $STAGING_SERVER_USER@$STAGING_SERVER "docker container stop unecast_dev_api && docker container rm unecast_dev_api || true"
- sshpass -p "$STAGING_SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no $STAGING_SERVER_USER@$STAGING_SERVER docker run --name unecast_dev_api -p 8080:8080 -d registry.gitlab.com/username/application
only:
- development
我想知道如何將application.properties中的值包含在.gitlab-ci.yml中以連接數據庫。
您無需將應用程序屬性添加到gitlab yml。 如果您確實需要,可以在gitlab yml中這樣定義(不建議)
variables:
SPRING_DATASOURCE_USERNAME: user1
另外,在構建步驟中,請使用mvn docker image而不是java docker image。 確保使用您的應用程序支持的正確版本。
如果您仍然無法解決問題,則“錯誤截圖”會有所幫助。
在Gitlab中,您可以將明智的值存儲在秘密變量中。
如文檔所述 ,GitLab支持兩種類型的變量:
Variable
:運行程序將創建一個與變量鍵相同名稱的環境變量,並將其值設置為變量值。 File
:Runner將變量值寫入一個臨時文件,並將此文件的路徑設置為與變量鍵相同的環境變量的值。 對於您的情況,我建議使用File
類型。 在gitlab中,轉到項目>設置> CI / CD>變量,然后將application.properties
的內容復制到變量中。 在我的示例中,application_properties(Gitlab在變量鍵名中不支持.
):
在您的工作中,您可以在application_properties
環境變量的值中找到此文件的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.