LoginSignup
1
0

More than 1 year has passed since last update.

Openshift環境でCLI、Git リポジトリーを使用して、アプリを作成する(Git からS2I へのBuild & Deploy方法)

Posted at

参考:CLI を使用したアプリケーションの作成

注意localじゃなくてgitからS2I Build & Deploy

localでうまく起動できるかはまず確認しないと!!!

セットアップ

IBM CloudとIKSクラスタの操作に必要なCLIツールのセットアップ

$ curl -sL https://ibm.biz/idt-installer | bash 

oc cliのinstall

$ brew install openshift-cli

projectを作成

$ oc new-project test

secretの作成

$ oc create secret generic github-token --from-literal=username=<githubのユーザーネーム> --from-literal=password=<githubのパスワード> --type=kubernetes.io/basic-auth
secret/github-token created

作成したsecretの確認

$ oc get secret

(optional)secretを削除したい場合

$ oc delete secret

ビルドイメージのプッシュおよびプルにシークレットを使用するには、シークレットは Pod 内でマウント可能である必要があります

$ oc secrets link builder github-token

プライベートリモートリポジトリー内のソースコードに基づいて新規アプリケーションを作成
3分ぐらいかかった

$ oc new-app <https://github.ibm.com/XXXXXX/XXXX.git> -e PORT=8080 --source-secret github-token
...
Run 'oc status' to view your app.

デプロイ進捗を確認

$ oc get bc
NAME          TYPE     FROM   LATEST
api-gateway   Source   Git    1


$ oc project
Using project "wu" on server "https://c100-e.jp-tok.containers.cloud.ibm.com:31036".


$ oc status


$ oc get pods
NAME                           READY   STATUS             RESTARTS   AGE
api-gateway-1-build            0/1     Completed          0          7m1s
api-gateway-222222-5555   0/1     CrashLoopBackOff   5          5m30s


$ oc logs -f api-gateway-222222-5555


$ oc logs -f api-gateway-1-build  
Caching blobs under "/var/cache/blobs".
Getting image source signatures
...
Writing manifest to image destination
Storing signatures
Generating dockerfile with builder image image-registry.openshift-image-registry.svc:5000/openshift 
...
STEP 3: ENV OPENSHIFT_BUILD_NAME="api-gateway-1"   
STEP 4: USER root
STEP 5: COPY upload/src /tmp/src
STEP 6: RUN chown -R 1001:0 /tmp/src
STEP 7: USER 1001
STEP 8: RUN /usr/libexec/s2i/assemble
---> Installing application source ...
---> Installing all dependencies
audited 904 packages in 6.81s
...
Push successful

無事にデプロイ後、外部公開(同サービスに外部からアクセスさせたい場合を想定します。)

$ oc status


$ oc get route
No resources found in XX namespace.
->routeがない状態


$ oc get svc
NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
api-gateway   ClusterIP   111.11.1.111   <none>        8080/TCP   6m59s


#ルートとして公開する
$ oc expose service api-gateway
route.route.openshift.io/api-gateway exposed


#routeが新規生成される
$ oc get route
 NAME          HOST/PORT                                                                                                        PATH   SERVICES      PORT       TERMINATION   WILDCARD
api-gateway    XXXXXX         api-gateway   8080-tcp                 None



$ oc start build XXXXX

1
0
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
1
0