first commit

This commit is contained in:
Cian Hughes
2023-12-05 17:10:55 +00:00
commit 93dcc136a3
2 changed files with 92 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
.keys
volumes.yaml

90
docker-compose.yaml Normal file
View File

@@ -0,0 +1,90 @@
services:
# The first service is a portainer instance that allows for easy management of the swarm
portainer:
image: portainer/portainer-ce:latest
ports:
- "9000:9000"
- "9001:9001"
volumes:
- portainer_data:/data
- /var/run/docker.sock:/var/run/docker.sock
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == manager
# We also want a watchtower instance to automatically update our services
watchtower:
image: containrrr/watchtower:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == manager
# This service runs a grafana instance for hosting dashboards
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
volumes:
- grafana:/var/lib/grafana
deploy:
replicas: 1
restart_policy:
condition: on-failure
# The following service is a simple nginx server that hosts static websites
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- web:/usr/share/nginx/html
deploy:
replicas: 1
restart_policy:
condition: on-failure
# And, finally, we want to add a dataverse instance to the swarm
dataverse:
image: gdcc/dataverse:alpha
ports:
- "8080:8080"
volumes:
- dataverse:/usr/local/glassfish4/glassfish/domains/domain1/autodeploy
deploy:
replicas: 1
restart_policy:
condition: on-failure
# This defines the NFS volumes for persistence
#! This requires nodes to be IP whitelisted in the NAS
volumes:
portainer_data:
driver: local
driver_opts:
type: nfs
device: ":volume1/portainer_data"
o: "addr=I-Form_Data,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"
web:
driver: local
driver_opts:
type: nfs
device: ":volume1/web"
o: "addr=I-Form_Data,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"
grafana:
driver: local
driver_opts:
type: nfs
device: ":volume1/grafana"
o: "addr=I-Form_Data,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"
dataverse:
driver: local
driver_opts:
type: nfs
device: ":volume1/dataverse"
o: "addr=I-Form_Data,rw,noatime,rsize=8192,wsize=8192,tcp,timeo=14,nfsvers=4"