簡體   English   中英

如何在.gitlab-ci.yml中將application.properties中的休眠連接字符串包括在內

[英]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。 確保使用您的應用程序支持的正確版本。

在這里關注博客https://about.gitlab.com/2016/12/14/continuous-delivery-of-a-spring-boot-application-with-gitlab-ci-and-kubernetes/

如果您仍然無法解決問題,則“錯誤截圖”會有所幫助。

在Gitlab中,您可以將明智的值存儲在秘密變量中。

文檔所述 ,GitLab支持兩種類型的變量:

  • Variable :運行程序將創建一個與變量鍵相同名稱的環境變量,並將其值設置為變量值。
  • File :Runner將變量值寫入一個臨時文件,並將此文件的路徑設置為與變量鍵相同的環境變量的值。

對於您的情況,我建議使用File類型。 在gitlab中,轉到項目>設置> CI / CD>變量,然后將application.properties的內容復制到變量中。 在我的示例中,application_properties(Gitlab在變量鍵名中不支持. ):

在此處輸入圖片說明

在您的工作中,您可以在application_properties環境變量的值中找到此文件的路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM