Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Added   Image Added


English

...

Cloud Foundry is an open source platform as a service (PaaS) for developers to deploy and scale applications without manually configuring and managing servers. The promise of “write once, run anywhere” means developers can build their apps on a programming language or framework of their choice, and be able to deploy it to any underlying cloud environment.

For example, developers could code a Java-based Spring Framework application, and “push” the application to a Cloud Foundry space. That space could be running in an on-premises OpenStack cloud, or a public cloud like Amazon AWS, Google Cloud Platform, IBM Bluemix or Microsoft Azure. The idea is that it hides away infrastructure details and services such as databases, so developers do not need to worry about managing the underlying environment.

The Cloud Foundry platform is available from either the Cloud Foundry Foundation as open source software, or as a commercial product or service from multiple providers. Pivotal Cloud Foundry (PCF) is a commercial offering from Pivotal, which is now part of VMware.

As an open source low code platform to visually build enterprise web apps for coders and non-coders, Joget DX is a good complement for Cloud Foundry.

Thai

...

Cloud Foundry

...

เป็นแพลตฟอร์มโอเพ่นซอร์สในฐานะบริการ (PaaS) สำหรับนักพัฒนาเพื่อปรับใช้และปรับขนาดแอปพลิเคชันโดยไม่ต้องกำหนดค่าและจัดการเซิร์ฟเวอร์ด้วยตนเอง คำมั่นสัญญาของ“ เขียนครั้งเดียวทำงานได้ทุกที่” หมายถึงนักพัฒนาสามารถสร้างแอพของพวกเขาในภาษาการเขียนโปรแกรมหรือกรอบงานที่เลือกไว้และสามารถปรับใช้กับสภาพแวดล้อมคลาวด์พื้นฐานได้

ตัวอย่างเช่นนักพัฒนาสามารถเขียนรหัสแอปพลิเคชัน Spring Framework ที่ใช้ Java และ "ผลักดัน" แอปพลิเคชันไปยังพื้นที่ Cloud Foundry พื้นที่นั้นอาจทำงานในระบบ OpenStack ในสถานที่หรือระบบคลาวด์สาธารณะเช่น Amazon AWS, แพลตฟอร์ม Google Cloud, IBM Bluemix หรือ Microsoft Azure แนวคิดก็คือมันซ่อนรายละเอียดและบริการโครงสร้างพื้นฐานเช่นฐานข้อมูลไว้ดังนั้นนักพัฒนาจึงไม่จำเป็นต้องกังวลเกี่ยวกับการจัดการสภาพแวดล้อมพื้นฐาน

แพลตฟอร์ม Cloud Foundry มีให้บริการจาก Cloud Foundry Foundation เป็นซอฟต์แวร์โอเพ่นซอร์สหรือเป็นผลิตภัณฑ์เชิงพาณิชย์หรือบริการจากผู้ให้บริการหลายราย Pivotal Cloud Foundry (PCF) เป็นข้อเสนอเชิงพาณิชย์จาก Pivotal which is now part of VMware

ในฐานะที่เป็นแพลตฟอร์ม low code platformเพื่อสร้างแอปพลิเคชันเว็บสำหรับองค์กรสำหรับผู้เข้ารหัสและผู้ไม่ใช้โค้ด Joget DX เป็นส่วนประกอบที่ดีสำหรับ Cloud Foundry

Deploy Joget DX on Pivotal Cloud Foundry

Thai

ปรับใช้ Joget DX บน Pivotal Cloud Foundry

In this example, we will deploy Joget DX on PCF Dev from Pivotal. PCF Dev is a lightweight, easy to install distribution of Cloud Foundry designed to run on a developer machine, In this example, we will deploy Joget on PCF Dev from Pivotal. PCF Dev is a lightweight, easy to install distribution of Cloud Foundry designed to run on a developer machine, making it easier to locally develop, test and explore Cloud Foundry.

...

Thai

ในตัวอย่างนี้เราจะปรับใช้ Joget DX บน PCF Dev

...

จาก Pivotal PCF Dev มีน้ำหนักเบาและง่ายต่อการติดตั้งการกระจายของ Cloud Foundry ที่ออกแบบมาเพื่อใช้กับเครื่องนักพัฒนาทำให้ง่ายต่อการพัฒนาในท้องถิ่นทดสอบและสำรวจ Cloud Foundry

 

Step 1: Install PCF Dev

Thai

ขั้นตอนที่ 1: ติดตั้ง PCF Dev

Install PCF Dev Install PCF Dev according to the instructions in the Pivotal Documentation.

Once installed, you may download the vm image from here and start PCF Dev using the command

Thai

ติดตั้ง PCF Dev ตามคำแนะนำใน Pivotal Documentation.

เมื่อติดตั้งแล้วคุณสามารถดาวน์โหลดอิมเมจ vm จาก here และเริ่ม PCF Dev โดยใช้คำสั่ง

Code Block
cf dev start -f ~/pcfdev-v1.2.0-linux.tgz -s mysql

and you should see the output:

Thai

และคุณควรเห็นผลลัพธ์:

Code Block
Downloading VMResources...
Progress: |====================>| 100%100.0%
VM downloaded
ImportingSetting State...
Creating the VM...
Starting the VM...
ProvisioningFetching VM Address...
Waiting for servicesthe to startVM...
40Deploying outthe of 40 running
_______  _______  _______    ______   _______  __   __
|       ||       ||       |  |      | |       ||  | |  |
|    _  ||       ||    ___|  |  _    ||    ___||  |_|  |
|   |_| ||       ||   |___   | | |   ||   |___ |       |
|    ___||      _||    ___|  | |_|   ||    ___||       |
|   |    |     |_ |   |      |       ||   |___  |     |
|___|    |_______||___|      |______| |_______|  |___|
is now running.
To begin using PCF Dev, please run:
   cf login -a https://api.local.pcfdev.io --skip-ssl-validation
Admin user => Email: admin / Password: admin
Regular user => Email: user / Password: pass

Follow the instructions provided at the end of to connect to PCF Dev, by logging in using the admin user and choosing the pcfdev-org organization:

Code Block
cf login -a https://api.local.pcfdev.io --skip-ssl-validation

You should have output like the following:

Code Block
API endpoint: https://api.local.pcfdev.io

Email> admin 

Password>

Authenticating...

OK

Select an org (or press enter to skip):

1. pcfdev-org

2. system

Org> 1

Targeted org pcfdev-org

Targeted space pcfdev-space

...

BOSH Director...
Deploying PAS...
  Done (22m38s)
Deploying Apps-Manager...
  Done (3m12s)
Deploying Mysql...
  Done (2m12s)
 
         ██████╗  ██████╗███████╗██████╗ ███████╗██╗   ██╗
         ██╔══██╗██╔════╝██╔════╝██╔══██╗██╔════╝██║   ██║
         ██████╔╝██║     █████╗  ██║  ██║█████╗  ██║   ██║
         ██╔═══╝ ██║     ██╔══╝  ██║  ██║██╔══╝  ╚██╗ ██╔╝
         ██║     ╚██████╗██║     ██████╔╝███████╗ ╚████╔╝
         ╚═╝      ╚═════╝╚═╝     ╚═════╝ ╚══════╝  ╚═══╝
                     is now running!
 
        To begin using PCF Dev, please run:
            cf login -a https://api.dev.cfdev.sh --skip-ssl-validation
 
        Admin user => Email: admin / Password: admin
        Regular user => Email: user / Password: pass
 
        To access Apps Manager, navigate here: https://apps.dev.cfdev.sh
 
        To deploy a particular service, please run:
            cf dev deploy-service <service-name> [Available services: mysql,redis,rabbitmq,scs]

Follow the instructions provided at the end of to connect to PCF Dev, by logging in using the admin user and choosing the pcfdev-org organization:

Thai

ทำตามคำแนะนำที่มีให้ในตอนท้ายของการเชื่อมต่อกับ PCF Dev โดยเข้าสู่ระบบโดยใช้ผู้ใช้ผู้ดูแลระบบและเลือกองค์กร pcfdev-org:

Code Block
cf login -a https://api.dev.cfdev.sh --skip-ssl-validation

You should have output like the following:

Thai

คุณควรมีเอาต์พุตดังนี้:

Code Block
API endpoint: https://api.dev.cfdev.sh

Your CF API version (2.125.0) is no longer supported. Upgrade to a newer version of the API (minimum version 2.128.0). Please refer to https://github.com/cloudfoundry/cli/wiki/Versioning-Policy#cf-cli-minimum-supported-version

Email: admin

Password:
Authenticating...
OK

Select an org:
1. cfdev-org
2. system

Org (enter to skip): 1
Targeted org cfdev-org

Targeted space cfdev-space



API endpoint:   https://api.dev.cfdev.sh (API version: 3.76.0)
User:           admin
Org:            cfdev-org
Space:          cfdev-space


Step 2: Create MySQL Database Service

Thai

ขั้นตอนที่ 2: สร้างบริการฐานข้อมูล MySQL

In Cloud Foundry, all external dependencies such as databases, file systems and so on are considered services. Cloud Foundry allows administrators to provide a marketplace of services, from which users can provision reserved resources on-demand.

Here, we will create a MySQL Database Service.

In the command line, search the marketplace for MySQL plans available.

Thai

ใน Cloud Foundry การอ้างอิงภายนอกทั้งหมดเช่นฐานข้อมูลระบบไฟล์และอื่น ๆ ถือเป็นบริการ Cloud Foundry อนุญาตให้ผู้ดูแลระบบจัดหาตลาดบริการซึ่งผู้ใช้สามารถจัดหาทรัพยากรที่สงวนไว้ตามความต้องการ

ที่นี่เราจะสร้างบริการฐานข้อมูล MySQL

ในบรรทัดคำสั่งค้นหาตลาดสำหรับแผน MySQL ที่มีให้

Code Block
cf marketplace -s p.mysql

Create a service instance with the db-small plan with the name jogetdb:

Thai

สร้างอินสแตนซ์ของบริการด้วยแผน db-small ด้วยชื่อ jogetdb:

Code Block
cf create-service p.mysql db-small jogetdb

More detailed information can be found at https://tanzu.vmware.com/tutorials/getting-started/connect-a-database 

Thai

ข้อมูลรายละเอียดเพิ่มเติมสามารถดูได้ที่ https://tanzu.vmware.com/tutorials/getting-started/connect-a-database

 

Step 3: Create Local Volume Service

Thai

ขั้นตอนที่ 3: สร้าง Local Volume Service

In Cloud Foundry, a volume service provides a reliable, persistent file system. However in the latest CF Dev, it doesn't come with any volume service. Nevertheless, we should have that in production environment so Joget DX can read or write to it.

For example, create a service instance using the PCF Local Volume Service with the name jogetdata:

Thai

ใน Cloud Foundry บริการไดรฟ์ข้อมูลมีระบบไฟล์ที่เชื่อถือได้และคงอยู่ อย่างไรก็ตามใน CF Dev ล่าสุดมันไม่ได้มาพร้อมกับบริการระดับเสียงใด ๆ อย่างไรก็ตามเราควรมีในสภาพแวดล้อมการผลิตเพื่อให้ Joget DX สามารถอ่านหรือเขียนได้

ตัวอย่างเช่นสร้างอินสแตนซ์ของบริการโดยใช้ PCF Local Volume Service ด้วยชื่อ

...

In Cloud Foundry, all external dependencies such as databases, file systems and so on are considered services. Cloud Foundry allows administrators to provide a marketplace of services, from which users can provision reserved resources on-demand.

Here, we will create a MySQL Database Service.

In the command line, search the marketplace for MySQL plans available.

Code Block
cf marketplace -s p-mysql

Create a service instance with the 1gb plan with the name jogetdb:

Code Block
cf create-service p-mysql 1gb jogetdb

More detailed information can be found at https://pivotal.io/platform/pcf-tutorials/getting-started-with-pivotal-cloud-foundry-dev/connect-a-database 

Step 3: Create Local Volume Service

In Cloud Foundry, a volume service provides a reliable, persistent file system.

...

jogetdata:

Code Block
cf create-service local-volume free-local-disk jogetdata

More detailed information can be found at at https://docs.cloudfoundry.org/devguide/services/using-vol-services.html and  https://github.com/cloudfoundry/local-volume-release

Thai

ข้อมูลรายละเอียดเพิ่มเติมสามารถดูได้ที่ https://docs.cloudfoundry.org/devguide/services/using-vol-services.html และ https://github.com/cloudfoundry/local-volume-release

 

Step 4: Download and Deploy Joget DX WAR

Thai

ขั้นตอนที่ 4: ดาวน์โหลดและปรับใช้ Joget DX WAR

Download Joget DX from https://www.joget.org/download/ 

Install Joget DX https://github.com/cloudfoundry/local-volume-release

Step 4: Download and Deploy Joget WAR

...

dev.joget.org/community/display/DX7/Installation+Guide 

Look for the Joget DX WAR file jw.war in joget_installation_directory/apache-tomcat/webapps.

Push the WAR to the Cloud Foundry space with a memory allocation of 1G and application name joget:

Thai

ดาวน์โหลด Joget DX จาก https://www.joget.org/download/

...

...

ติดตั้ง Joget DX https://dev.joget.org/community/display/

...

DX7/

...

Installation+

...

Guide

ค้นหาไฟล์ Joget DX WAR jw.war

...

ใน joget_installation_directory / apache-tomcat / webapps

...

...

พุช WAR

...

ไปยังพื้นที่ Cloud Foundry

...

ด้วยการจัดสรรหน่วยความจำ 1G และชื่อแอปพลิเคชัน joget:

Code Block
cf push joget -p joget_installation_directory-enterprise-linux-7.0.0/apache-tomcat-8.5.2341/webapps/jw.war -m 1G --no-start -b https://github.com/cloudfoundry/java-buildpack.git

Note that we use the --no-start parameter to delay the start of the application, because we need to set a couple of environment variables before starting up.

Thai

โปรดทราบว่าเราใช้พารามิเตอร์ --no-start เพื่อชะลอการเริ่มต้นแอปพลิเคชันเนื่องจากเราจำเป็นต้องตั้งค่าตัวแปรสภาพแวดล้อมสองสามก่อนเริ่มต้น

 

Step 5: Configure and Start

...

Joget DX

Thai

ขั้นตอนที่ 5: กำหนดค่าและเริ่ม Joget DX

Set the Apache Tomcat Apache Tomcat version to 8.5 and context path to /jw:

Thai

ถัดไปปิดการกำหนดค่าสปริงอัตโนมัติใหม่ นี่เป็นเพราะ Joget DX WAR ดำเนินการเริ่มต้นที่จำเป็นแล้วเมื่อเริ่มต้นและการกำหนดค่าอัตโนมัติจะรบกวน:

Code Block
cf set-env joget JBP_CONFIG_TOMCAT '{[tomcat: { version: 8.5.+, context_path: "/jw" }}]'

Next, disable the Spring auto reconfiguration. This is because the Joget DX WAR already performs the necessary initialization at startup, and the auto configuration will interfere with it:

Thai

ถัดไปปิดการกำหนดค่าสปริงอัตโนมัติใหม่ นี่เป็นเพราะ Joget DX WAR ดำเนินการเริ่มต้นที่จำเป็นแล้วเมื่อเริ่มต้นและการกำหนดค่าอัตโนมัติจะรบกวน:

Code Block
cf set-env joget JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '[enabled: false]'

Bind the local volume service to mount the persistent filesystem to the Joget DX data directory:

Thai

ผูกเซอร์วิสวอลุ่มเพื่อต่อเชื่อมระบบไฟล์ถาวรกับไดเร็กทอรีข้อมูล Joget DX:

Code Block
cf bind-service joget jogetdata -c '{"mount":"/home/vcap/wflow"}'

...

Bind the MySQL database service:

Thai

ผูกบริการฐานข้อมูล MySQL:

Code Block
cf bind-service joget jogetdb

Verify that the services are bound to the Joget application:

Thai

ตรวจสอบว่าบริการถูกผูกไว้กับแอปพลิเคชัน Joget:

Code Block
cf services

For example the output shows the services bound to the joget application:

Code Block
name        service        plan              bound apps   last operation
jogetdata   local-volume   free-local-disk   joget        create succeeded
jogetdb     p-mysql        1gb               joget        create succeeded

Start the Joget application:

Code Block
cf start joget

Step 6: Setup Joget Database

Now that the Joget platform has been deployed in Cloud Foundry, the final step is to setup the database schema, based on https://docs.cloudfoundry.org/devguide/services/migrate-db.html#single-migration.

...

If you are using Joget prior to version 6.0.3, you need to modify the default Joget SQL setup script due to a limitation in MySQL for PCF where explicit locking is not supported i.e. LOCK TABLES.

SSH into the application:

Code Block
cf ssh joget

And download the modified script:

...

the joget application:

Thai

ตัวอย่างเช่นผลลัพธ์แสดงบริการที่ผูกกับแอ็พพลิเคชัน joget:

Code Block
name      service   plan       bound apps   last operation     broker                   upgrade available
jogetdb   p.mysql   db-small   joget        create succeeded   dedicated-mysql-broker

Start the Joget application:

Thai

เริ่มแอปพลิเคชัน Joget:

Code Block
cf start joget

 

Step 6: Setup Joget Database

Thai

ขั้นตอนที่ 6: ตั้งค่าฐานข้อมูล Joget

Now that the Joget platform has been deployed in Cloud Foundry, the final step is to setup the database schema, based on https://docs.cloudfoundry.org/devguide/services/migrate-db.html#single-migration.

At this point, we can obtain the MySQL database service credentials by viewing the environment variables:

Thai

ตอนนี้แพลตฟอร์ม Joget ได้รับการปรับใช้ใน Cloud Foundry ขั้นตอนสุดท้ายคือการตั้งค่าสคีมาฐานข้อมูลตาม https://docs.cloudfoundry.org/devguide/services/migrate-db.html#single-migration

ณ จุดนี้เราสามารถรับข้อมูลรับรองบริการฐานข้อมูล MySQL ได้โดยการดูตัวแปรสภาพแวดล้อม:

Code Block
cf env joget

In particular, note down the p-mysql service hostname, port, name, username and password.

Thai

โดยเฉพาะจดชื่อโฮสต์บริการพอร์ต p-mysql ชื่อผู้ใช้และรหัสผ่าน

Code Block
Getting env variables for app joget in org cfdev-org / space cfdev-space as admin...
OK

System-Provided:
{
 "VCAP_SERVICES": {
  "p.
Code Block
System-Provided:
{
"VCAP_SERVICES": {
 "local-volume": [
  {
   "credentials": {},
   "label": "local-volume",
   "name": "jogetdata",
   "plan": "free-local-disk",
   "provider": null,
   "syslog_drain_url": null,
   "tags": [
    "local"
   ],
   "volume_mounts": [
    {
     "container_dir": "/home/vcap/wflow",
     "device_type": "shared",
     "mode": "rw"
    }
   ]
  }
 ],
 "p-mysql": [
  {
      {
    "binding_name": null,
    "credentials": {
         "hostname": "mysqlq-brokern1s3y1.local.pcfdev.ioq-g173.bosh",
         "jdbcUrl": "jdbc:mysql://mysqlq-brokern1s3y1.local.pcfdev.ioq-g173.bosh:3306/cfservice_d13b2f40_c124_4c4b_a900_2269e10a7052instance_db?user=XMpalSAOEYcClZl2e35c7904b0c8402096ef491aa0a17151\u0026password=uSRs0B1D6NPNuLOexgd4xt398r8hkct6\u0026useSSL=false",
         "name": "cfservice_d13b2f40_c124_4c4b_a900_2269e10a7052instance_db",
         "password": "uSRs0B1D6NPNuLOexgd4xt398r8hkct6",
         "port": 3306,
         "uri": "mysql://XMpalSAOEYcClZl2e35c7904b0c8402096ef491aa0a17151:uSRs0B1D6NPNuLOe@mysqlxgd4xt398r8hkct6@q-brokern1s3y1.local.pcfdev.ioq-g173.bosh:3306/cfservice_d13b2f40_c124_4c4b_a900_2269e10a7052instance_db?reconnect=true",
    "username     "username": "e35c7904b0c8402096ef491aa0a17151"
    },
    "instance_name": "XMpalSAOEYcClZl2jogetdb"
   },
       "label": "p-.mysql",
       "name": "jogetdb",
       "plan": "1gbdb-small",
       "provider": null,
       "syslog_drain_url": null,
       "tags": [
         "mysql"
       ],
   
    "volume_mounts": []
     }
   ]
 }
}

{
 "VCAP_APPLICATION": {
   "application_id": "a450291af80eeb36-0440b149-47274aed-ba78a3dc-c65f12d99961a0cca32c0e1f",
   "application_name": "joget",
   "application_uris": [
     "joget.localdev.pcfdevcfdev.iosh"
   ],
   "application_version": "aedb805392375e68-728874b1-427241f6-bcf79d11-85eab3dbd3605f196629fb4a",
   "cf_api": "httphttps://api.localdev.pcfdevcfdev.iosh",
   "limits": {
     "disk": 5121024,
     "fds": 16384,
     "mem": 1024
   },
   "name": "joget",
   "space_id": "4376eb8245d5b30a-39356bb1-49c14ccb-b54399f1-8df589392831e45912c40ef1",
   "space_name": "pcfdevcfdev-space",
   "uris": [
     "joget.localdev.pcfdevcfdev.iosh"
   ],
   "users": null,
   "version": "aedb805392375e68-728874b1-427241f6-bcf79d11-85eab3dbd3605f196629fb4a"
 }
}

User-Provided:
JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: [enabled: false]
JBP_CONFIG_TOMCAT: {tomcat: {context_path: "/jw"}}

...

[tomcat: { version: 8.5.+, context_path: "/jw" }]


Access Joget DX at
http://joget.dev.cfdev.sh/jw/ and you will be presented with the database setup page.

Proceed to setup the database according to the instructions at https://dev.joget.org/community/display/DX7/Setting+Up+Database

Thai

เข้าถึง Joget DX ที่ http://joget.

...

dev.

...

cfdev.

...

sh/jw/

...

และคุณจะพบหน้าการตั้งค่าฐานข้อมูล

ดำเนินการตั้งค่าฐานข้อมูลตามคำแนะนำที่

https://dev.joget.org/community/display/

...

DX7/Setting+Up+Database

...

Image RemovedImage Added

Once setup is complete, you will be brought to the Joget to the Joget DX App Center.

Thai

เมื่อการติดตั้งเสร็จสมบูรณ์คุณจะถูกนำไปที่ Joget DX App Center.


Image Added

Image Removed 

Appendix A: Application Manifest File

Thai

ภาคผนวก A: ไฟล์ Manifest ของแอปพลิเคชัน

Optionally, an application manifest file can be used to specify environment variables and bind services.

manifest.yml:

Thai

เป็นทางเลือกไฟล์รายการแอปพลิเคชันสามารถใช้เพื่อระบุตัวแปรสภาพแวดล้อมและบริการผูก

manifest.yml:

Code Block
---
applications:
- name: joget
 memory: 1G
 buildpack: https://github.com/cloudfoundry/java-buildpack.git
 path: /path_to/jw.war
 services:
   - jogetdb
   - jogetdata
 env:
   JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '[enabled: false]'
   JBP_CONFIG_TOMCAT: '{tomcat: {context_path: "/jw"}}'

However, there is a limitation that the current version of Cloud Foundry does not support  specifying parameters when binding parameters, so binding of the local volume service to the Joget data directory has to be done manually:

Thai

อย่างไรก็ตามมีข้อ จำกัด ที่เวอร์ชันปัจจุบันของ Cloud Foundry does not support  specifying parameters when binding parameters ดังนั้นการรวมบริการโลคัลวอลุ่มเข้ากับไดเร็กทอรีข้อมูล Joget จะต้องดำเนินการด้วยตนเอง:

Code Block
cf bind-service joget jogetdata -c '{"mount":"/home/vcap/wflow"}'
cf restage joget

...

 

Appendix B: Useful Cloud Foundry Commands

Thai

ภาคผนวก B:

...

คำสั่ง Cloud Foundry

...

ที่มีประโยชน์

View application logs:

Thai

ดูบันทึกแอปพลิเคชัน:

Code Block
cf logs joget


Restage the application after modifying service bindings or environment variables:

Thai

เรียกคืนแอปพลิเคชันหลังจากแก้ไขการผูกบริการหรือตัวแปรสภาพแวดล้อม:

Code Block
cf restage joget


Stop PCF Dev VM:

Thai

หยุด PCF Dev VM:

Code Block
cf dev stop


Delete the PCF Dev VM:

Thai

ลบ PCF Dev VM:

Code Block
cf dev destroy


Uninstall the PCF Dev Plugin:

Thai

ถอนการติดตั้ง PCF Dev Plugin:

Code Block
cf uninstall-plugin pcfdev

 

View PCF Dev App Manager:

Thai

ดู PCF Dev App Manager:

https://apps.localdev.pcfdevcfdev.iosh