mirror of
https://github.com/Cian-H/I-Form_Research_Server_Stack.git
synced 2025-12-22 22:22:02 +00:00
90 lines
2.4 KiB
YAML
90 lines
2.4 KiB
YAML
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" |