Clever Cloudへのデプロイ パーマリンク to "Clever Cloudへのデプロイ"

Clever cloudはIT自動化プラットフォームです。

Clever cloud logo

開始する前に パーマリンク to "開始する前に"

Clever cloud CLIをインストールする必要があります。

また、Clever Cloudアカウントを作成し、次のコマンドclever loginを実行してCLIでログインする必要があります。

Opening https://console.clever-cloud.com/cli-oauth?cli_version=2.7.1&cli_token=XXX in your browser to log you in…
Login successful as ...

Clever Cloudアプリケーションを作成する パーマリンク to "Clever Cloudアプリケーションを作成する"

  1. mavenの場合はclever create --type maven [your application name]、gradleの場合はclever create --type gradle [your application name]となります。

  2. データベースアドオンをアプリケーションに追加します。clever addon create [addon provider] [your addon name] --link [your application name]

    サポートされているアドオンプロバイダの一覧はclever addon providersで出力されます。

     cellar-addon      Cellar S3 storage       S3-like online file storage web service
     config-provider   Configuration provider  Expose configuration to your applications  (via environment variables)
     es-addon          Elastic Stack           Elasticsearch with Kibana and APM server as options
     fs-bucket         FS Buckets              Persistent file system for your application
     mongodb-addon     MongoDB                 A noSQL document-oriented database
     mysql-addon       MySQL                   An open source relational database management system
     postgresql-addon  PostgreSQL              A powerful, open source object-relational database system
     redis-addon       Redis                   Redis by Clever Cloud is an in-memory key-value data store, powered by Clever Cloud
     

    サポートされているアドオンはこちらを参照ください

  3. 環境変数をセットアップします。clever env set CC_PRE_RUN_HOOK "cp ./clevercloud/application-clevercloud.yml ./application-prod.yml"

  4. 専用ビルドを有効にします clever scale --build-flavor M

    専用ビルドを参照ください

JHipsterアプリケーションの設定 パーマリンク to "JHipsterアプリケーションの設定"

  1. プロジェクトにclevercloud/フォルダを追加します。

  2. 事前定義されたclever cloud addon環境変数を使用するためのclevercloud/application-clevercloud.ymlを作成します。

    PostgreSQLの場合

     spring:
         datasource:
             type: com.zaxxer.hikari.HikariDataSource        
             url: jdbc:postgresql://${POSTGRESQL_ADDON_HOST}:${POSTGRESQL_ADDON_PORT}/${POSTGRESQL_ADDON_DB}?useUnicode=true&characterEncoding=utf8&useSSL=false
             username: ${POSTGRESQL_ADDON_USER}
             password: ${POSTGRESQL_ADDON_PASSWORD}
             hikari:
                 maximumPoolSize: 2
     

    MySQLの場合

     spring:
         datasource:
             type: com.zaxxer.hikari.HikariDataSource        
             url: jdbc:mysql://${MYSQL_ADDON_HOST}:${MYSQL_ADDON_PORT}/${MYSQL_ADDON_DB}?useUnicode=true&characterEncoding=utf8&useSSL=false
             username: ${MYSQL_ADDON_USER}
             password: ${MYSQL_ADDON_PASSWORD}
             hikari:
                 maximumPoolSize: 2
     

    MongoDBの場合

     spring:
       data:
         mongodb:
           uri: ${MONGODB_ADDON_URI}
           database: ${MONGODB_ADDON_DB}
     
  3. アプリケーションの起動方法を示すゴールフィールドを含むjsonファイルを追加します。

    mavenの場合 clevercloud/maven.jsonファイルを作成し、pom.xmlのartifactIdを使用します。

     {
         "build": {
             "type": "maven",
             "goal": "-Pprod package -DskipTests"
         },
         "deploy": {
         "jarName": "./target/[REPLACE BY ARTIFACTID]-0.0.1-SNAPSHOT.jar"
         }
     }
     

    gradleの場合 clevercloud/gradle.jsonファイルを作成し、gradleを使用します。プロパティはrootProject.nameを使用します。

     {
         "build": {
             "type": "gradle",
             "goal": "-Pprod bootJar -x test"
         },
         "deploy": {
             "jarName": "./build/libs/[REPLACE BY rootProject.name]-0.0.1-SNAPSHOT.jar"
         }
     }
     

アプリケーションのデプロイ パーマリンク to "アプリケーションのデプロイ"

CLIの使用 パーマリンク to "CLIの使用"

デプロイ前にコミットする必要があります。

git commit -m "Clever deploy"

その後、実行します。

clever deploy

gitlab CIの使用 パーマリンク to "gitlab CIの使用"

gitlab CI/CD環境変数に$CLEVER_TOKENCLEVER_SECRETを定義してください。

このステージを.gitlab-ci.ymlに追加してください。

deploy-to-clever-env:
  stage: deploy
  variables:
    APP_NAME: [clever cloud app name]
    APP_ID: [clever cloud app id]
  script:
    - wget https://clever-tools.cellar.services.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz
    - tar xvzf clever-tools-latest_linux.tar.gz
    - ./clever-tools-latest_linux/clever login --token $CLEVER_TOKEN --secret $CLEVER_SECRET
    - ./clever-tools-latest_linux/clever link ${APP_ID}
    - ./clever-tools-latest_linux/clever deploy -a ${APP_NAME}
  environment:
    name: [env name]
    url: https://${APP_NAME}.cleverapps.io

Githubアクションの使用 パーマリンク to "Githubアクションの使用"

GithubシークレットにCLEVER_TOKENCLEVER_SECRETを定義します(Settings > Secret)。

このステップを.github-action.ymlに追加してください。

- uses: actions/checkout@v2
- name: Deploy on cc
  env:
    APP_NAME:[clever cloud app name]
    APP_ID: [clever cloud app id]
  run: |
    git fetch --prune --unshallow
    wget https://clever-tools.cellar.services.clever-cloud.com/releases/latest/clever-tools-latest_linux.tar.gz
    tar xvzf clever-tools-latest_linux.tar.gz
    ./clever-tools-latest_linux/clever login --token $ --secret $
    ./clever-tools-latest_linux/clever link $
    ./clever-tools-latest_linux/clever deploy -f -a $

Javaバージョンの変更 パーマリンク to "Javaバージョンの変更"

Javaバージョン(デフォルトではJava 11)を選択できます。

clever env set CC_JAVA_VERSION 12

詳細情報 パーマリンク to "詳細情報"