We will remove the `twenty-postgres` image that was used for local development and only use `twenty-postgres-pilo` (which we use in prod), bringing the development environment closer to prod and avoiding having to maintain 2 images. Instead of provisioning the super user after the db initialization, we directly rely on the superuser provided by Spilo for simplicity. We also introduce a change that tries to create the right database (`default` or `test`) based on the context. How to test: ``` docker build -t twentycrm/twenty-postgres-spilo:latest -f ./packages/twenty-docker/twenty-postgres-spilo/Dockerfile . docker images --no-trunc | grep twenty-postgres-spilo postgres-on-docker: docker run \ --name twenty_pg \ -e PGUSER_SUPERUSER=twenty \ -e PGPASSWORD_SUPERUSER=twenty \ -e ALLOW_NOSSL=true \ -v twenty_db_data:/home/postgres/pgdata \ -p 5432:5432 \ REPLACE_WITH_IMAGE_ID ```
55 lines
1.3 KiB
YAML
55 lines
1.3 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: twentycrm-db
|
|
name: twentycrm-db
|
|
namespace: twentycrm
|
|
spec:
|
|
progressDeadlineSeconds: 600
|
|
replicas: 1
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 1
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
selector:
|
|
matchLabels:
|
|
app: twentycrm-db
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: twentycrm-db
|
|
spec:
|
|
volumes:
|
|
- name: twentycrm-db-data
|
|
persistentVolumeClaim:
|
|
claimName: twentycrm-db-pvc
|
|
containers:
|
|
- name: twentycrm
|
|
image: twentycrm/twenty-postgres:latest
|
|
imagePullPolicy: Always
|
|
env:
|
|
- name: PGUSER_SUPERUSER
|
|
value: "postgres"
|
|
- name: PGPASSWORD_SUPERUSER
|
|
value: "twenty"
|
|
ports:
|
|
- containerPort: 5432
|
|
name: tcp
|
|
protocol: TCP
|
|
resources:
|
|
requests:
|
|
memory: "256Mi"
|
|
cpu: "250m"
|
|
limits:
|
|
memory: "1024Mi"
|
|
cpu: "1000m"
|
|
stdin: true
|
|
tty: true
|
|
volumeMounts:
|
|
- mountPath: /home/postgres/pgdata
|
|
name: twentycrm-db-data
|
|
dnsPolicy: ClusterFirst
|
|
restartPolicy: Always
|