LoginSignup
5
5

More than 5 years have passed since last update.

OpenShift v3 で アプリとデータベースの連携

Last updated at Posted at 2015-09-13

OpenShift v3で、アプリケーションとDBを連携させる手順を紹介します。サーバーのセットアップと、簡単なHello Worldテスト手順は、こちらの記事(Hello world, OpenShift v3)を参考にしてください。

また、今回の手順の詳しい解説は、nekopさんの書いたハンズオン にあります。ご参照ください。

アプリケーションとデータベースの接続

1. データベースの作成

oc new-app mysql --env=MYSQL_USER=user --env=MYSQL_PASSWORD=pass --env=MYSQL_DATABASE=testdb -l db=mysql

これだけです。PodがREADYになればDataBaseのセットアップは完了です。

$ oc get pod
NAME                       READY     STATUS    RESTARTS   AGE
mysql-55-centos7-1-0ydzh   1/1       Running   0          22s

2. アプリケーションの作成

アプリケーションをソースコードからデプロイします。

oc new-app https://github.com/nak3/hello-php.git -l app=php

ポイントは、アプリケーションからの接続先の設定で、index.phpの4行目の環境変数だけです。DB接続先アドレスが、MYSQL_55_CENTOS7 + _SERVICE_HOST となることにご注目ください。

php アプリケーションもREADYになったらOKです。

$ oc get pod
NAME                       READY     STATUS       RESTARTS   AGE
hello-php-1-build          0/1       ExitCode:0   0          3m
hello-php-1-gvqo7          1/1       Running      0          1m
mysql-55-centos7-1-0ydzh   1/1       Running      0          6m

ここで、hello-phpのアプリケーションに、DBのパスワード、ユーザー名、データベース名を教えてあげる必要があります。

$ oc env dc hello-php MYSQL_USER=user MYSQL_PASSWORD=pass MYSQL_DATABASE=testdb
deploymentconfigs/hello-php

設定した環境変数は、以下のコマンドで確認することができます。

$ oc env dc hello-php --list
# deploymentconfigs hello-php, container hello-php
MYSQL_USER=user
MYSQL_PASSWORD=pass
MYSQL_DATABASE=testdb

あとは、サービスIPを確認して、ブラウザからアクセスしてみましょう!(以下の場合、172.30.130.26:8080)

$ oc get svc hello-php
NAME        CLUSTER_IP      EXTERNAL_IP   PORT(S)    SELECTOR                             AGE
hello-php   172.30.130.26   <none>        8080/TCP   app=php,deploymentconfig=hello-php   20m

以上です。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5