28
loading...
This website collects cookies to deliver better user experience
To utilize transactions, MongoDB must be configured as a replica set or a sharded cluster. Transactions are not supported on standalone deployments. If you are using a database hosted on Atlas, you do not need to worry about this as every Atlas cluster is either a replica set or a sharded cluster.
run-rs
, which can help you set this up. However, if you are developing using docker-compose/Kubernetes, or need to quickly spin up a zero-config replica set to run in a CI suite, this is for you.# docker-compose.yml
version: "3"
services:
mongodb:
image : davybello/mongo-replica-set:4.4.8
container_name: mongodb
volumes:
- "./docker/.data/mongo1:/var/lib/mongo1"
- "./docker/.data/mongo2:/var/lib/mongo2"
- "./docker/.data/mongo3:/var/lib/mongo3"
ports:
- 27017:27017
- 27018:27018
- 27019:27019
davybello/mongo-replica-set:4.4.8
image./docker/.data/mongo1
, /mongo2
and /mongo3
apiVersion: v1
kind: Pod
metadata:
name: mongo-pod
spec:
containers:
- name: mongo
image: davybello/mongo-replica-set:4.4.8
apiVersion: v1
kind: Service
metadata:
name: mongo-service
spec:
selector:
app: mongo
ports:
- name: db1
protocol: TCP
port: 27017
targetPort: 27017
- name: db2
protocol: TCP
port: 27018
targetPort: 27018
- name: db3
protocol: TCP
port: 27019
targetPort: 27019
mongo-volume
apiVersion: v1
kind: Pod
metadata:
name: mongo-pod
spec:
containers:
- name: mongo
image: davybello/mongo-replica-set:4.4.8
volumeMounts:
- mountPath: '/var/lib/mongo1'
subPath: "mongo1"
name: mongo-data
- mountPath: '/var/lib/mongo2'
subPath: "mongo2"
name: mongo-data
- mountPath: '/var/lib/mongo3'
subPath: "mongo3"
name: mongo-data
volumes:
- name: mongo-data
persistentVolumeClaim:
claimName: mongo-volume