349 字
2 分鐘
Docker自建表單資料庫Ragic
2023-04-01
無標籤

Ragic是個Excel式的企業雲端資料庫,是最強大的 No Code 企業電子化工具,除了雲端版使用外,本篇將說明如何自建Ragic。


VM#

官方文件中有說明如何在主機中安裝好Ragic,也可以使用下面docker的方法。


Docker Image#

可以參考Dockerhub已經打包好的Ragic Image,撰寫本文時最新版本為20230330。


Docker Compose#

透過本repo中的說明,可以使用docker compose快速的使用Ragic。

docker-compose.yml如下,啟動使用docker-compose up -d

version: "3.9"
services:
ragic:
image: modagovtw/ragic:20230330
ports:
- "80:80"
volumes:
- ./volumes:/srv/ragic/volumes

Kubernetes#

要在Kubernetes建構請參考本repo中的gke.yml,這給範例是我部署到GKE用的。要注意的是,Ragic無法部署在多個Container,多容器部署會導致資料庫異常。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-ragic-rwo
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
storageClassName: standard-rwo
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-ragic
spec:
replicas: 1
selector:
matchLabels:
app: pod-ragic
template:
metadata:
labels:
app: pod-ragic
spec:
volumes:
- name: pvc-ragic-vol
persistentVolumeClaim:
claimName: pvc-ragic-rwo
containers:
- name: ragic
image: modagovtw/ragic:20230330
ports:
- containerPort: 80
resources:
requests:
cpu: 1250m
memory: 8Gi
readinessProbe:
httpGet:
path: /default/home
port: 80
volumeMounts:
- mountPath: /srv/ragic/volumes
name: pvc-ragic-vol
---
apiVersion: v1
kind: Service
metadata:
name: service-ragic
spec:
type: ClusterIP
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: pod-ragic
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-ragic
spec:
tls:
- secretName: cert-ragic
rules:
- host: $DOMAIN
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: service-ragic
port:
number: 80

上面是gke.yml的內容,部署指令如下:

Terminal window
kubectl create secret tls cert-ragic --cert=$CERT_PATH --key=$KEY_PATH
export DOMAIN=ragic.example.com
envsubst < gke.yml | kubectl apply -f -