Loading docker-compose.yml 0 → 100644 +240 −0 Original line number Diff line number Diff line version: '3.6' # Common configuration options for compute node services x-compute-node: &compute-node image: slurm-docker-cluster-node:${IMAGE_TAG:-21.08.6} build: context: slurm-docker-cluster-node args: SLURM_TAG: ${SLURM_TAG:-slurm-21-08-6-1} SHARED_USER_NAME: ${SHARED_USER_NAME:-user} SHARED_USER_UID: ${SHARED_USER_UID:-1000} SHARED_GROUP_NAME: ${SHARED_GROUP_NAME:-user} SHARED_GROUP_GID: ${SHARED_GROUP_GID:-1000} command: [ "slurmd" ] tmpfs: #################### systemd ############################################# # temporary file systems - /tmp - /run volumes: #################### systemd ############################################# # cgroups - /sys/fs/cgroup:/sys/fs/cgroup:ro #################### MUNGE ############################################### # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key #################### SLURM ############################################### # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data #################### SCORD ############################################### # scord install prefix - ./volumes/scord_prefix:/scord_prefix # scord ld.so.conf.d - ./volumes/ld.so.conf.d/libscord.conf:/etc/ld.so.conf.d/libscord.conf #################### CARGO ############################################### - ./volumes/cargo_prefix:/cargo_prefix - ./volumes/ld.so.conf.d/libcargo.conf:/etc/ld.so.conf.d/libcargo.conf #################### ENTRYPOINT ########################################## - ./volumes/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh #################### USER ################################################ - ./volumes/user_home:/home/amiranda - /home/amiranda/var/projects/scord/repo:/home/amiranda/repo - /home/amiranda/var/projects/cargo/repo:/home/amiranda/cargo/repo networks: - slurm_cluster expose: - "6818" depends_on: - "slurmctld" # Allow container to connect to host machine using the # `host.docker.internal` DNS name extra_hosts: - "host.docker.internal:host-gateway" cap_add: - SYS_PTRACE services: # # DNS proxy server to allow containers to update the host's DNS configuration # # This allows the host to resolve the containers' hostnames # dns: # image: defreitas/dns-proxy-server:latest # container_name: dns # volumes: # - /var/run/docker.sock:/var/run/docker.sock # - /etc/resolv.conf:/etc/resolv.conf # environment: # - MG_LOG_LEVEL=ERROR # networks: # - slurm_cluster # Database server where Slurm will keep accounting information mysql: image: mariadb:10.10 hostname: mysql container_name: mysql environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: slurm_acct_db MYSQL_USER: slurm MYSQL_PASSWORD: password volumes: - var_lib_mysql:/var/lib/mysql networks: - slurm_cluster # Slurm DBD daemon slurmdbd: image: slurm-docker-cluster:${IMAGE_TAG:-21.08.6} build: context: slurm-docker-cluster args: SLURM_TAG: ${SLURM_TAG:-slurm-21-08-6-1} command: [ "slurmdbd" ] container_name: slurmdbd hostname: slurmdbd volumes: # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data networks: - slurm_cluster expose: - "6819" depends_on: - mysql # Slurm controller daemon slurmctld: image: slurm-docker-cluster:${IMAGE_TAG:-21.08.6} command: [ "slurmctld" ] container_name: slurmctld hostname: slurmctld volumes: # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data networks: slurm_cluster: ipv4_address: 192.18.0.129 expose: - "6817" depends_on: - "slurmdbd" # Login node login: hostname: login.docker.cluster container_name: login command: [ "sshd" ] tmpfs: #################### systemd ############################################# # temporary file systems - /tmp - /run <<: *compute-node volumes: #################### systemd ############################################# # cgroups - /sys/fs/cgroup:/sys/fs/cgroup:ro #################### MUNGE ############################################### # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key #################### SLURM ############################################### # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data #################### SSHD ################################################ # sshd configuration files - ./volumes/etc_ssh:/etc/ssh #################### SCORD ############################################### # scord install prefix - ./volumes/scord_prefix:/scord_prefix # scord ld.so.conf.d - ./volumes/ld.so.conf.d/libscord.conf:/etc/ld.so.conf.d/libscord.conf #################### CARGO ############################################### - ./volumes/cargo_prefix:/cargo_prefix - ./volumes/ld.so.conf.d/libcargo.conf:/etc/ld.so.conf.d/libcargo.conf #################### ENTRYPOINT ########################################## - ./volumes/docker-~.sh:/usr/local/bin/docker-entrypoint.sh #################### USER ################################################ - ./volumes/user_home:/home/amiranda - /home/amiranda/var/projects/scord/repo:/home/amiranda/repo - /home/amiranda/var/projects/cargo/repo:/home/amiranda/cargo/repo networks: slurm_cluster: ipv4_address: 192.18.0.128 # Compute nodes c1: hostname: c1 container_name: c1 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.10 c2: hostname: c2 container_name: c2 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.11 c3: hostname: c3 container_name: c3 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.12 c4: hostname: c4 container_name: c4 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.13 # Volumes to persist data volumes: etc_munge: # etc_slurm: slurm_jobdir: var_lib_mysql: networks: slurm_cluster: driver: bridge name: slurm_cluster ipam: driver: default config: - subnet: 192.18.0.0/24 Loading
docker-compose.yml 0 → 100644 +240 −0 Original line number Diff line number Diff line version: '3.6' # Common configuration options for compute node services x-compute-node: &compute-node image: slurm-docker-cluster-node:${IMAGE_TAG:-21.08.6} build: context: slurm-docker-cluster-node args: SLURM_TAG: ${SLURM_TAG:-slurm-21-08-6-1} SHARED_USER_NAME: ${SHARED_USER_NAME:-user} SHARED_USER_UID: ${SHARED_USER_UID:-1000} SHARED_GROUP_NAME: ${SHARED_GROUP_NAME:-user} SHARED_GROUP_GID: ${SHARED_GROUP_GID:-1000} command: [ "slurmd" ] tmpfs: #################### systemd ############################################# # temporary file systems - /tmp - /run volumes: #################### systemd ############################################# # cgroups - /sys/fs/cgroup:/sys/fs/cgroup:ro #################### MUNGE ############################################### # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key #################### SLURM ############################################### # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data #################### SCORD ############################################### # scord install prefix - ./volumes/scord_prefix:/scord_prefix # scord ld.so.conf.d - ./volumes/ld.so.conf.d/libscord.conf:/etc/ld.so.conf.d/libscord.conf #################### CARGO ############################################### - ./volumes/cargo_prefix:/cargo_prefix - ./volumes/ld.so.conf.d/libcargo.conf:/etc/ld.so.conf.d/libcargo.conf #################### ENTRYPOINT ########################################## - ./volumes/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh #################### USER ################################################ - ./volumes/user_home:/home/amiranda - /home/amiranda/var/projects/scord/repo:/home/amiranda/repo - /home/amiranda/var/projects/cargo/repo:/home/amiranda/cargo/repo networks: - slurm_cluster expose: - "6818" depends_on: - "slurmctld" # Allow container to connect to host machine using the # `host.docker.internal` DNS name extra_hosts: - "host.docker.internal:host-gateway" cap_add: - SYS_PTRACE services: # # DNS proxy server to allow containers to update the host's DNS configuration # # This allows the host to resolve the containers' hostnames # dns: # image: defreitas/dns-proxy-server:latest # container_name: dns # volumes: # - /var/run/docker.sock:/var/run/docker.sock # - /etc/resolv.conf:/etc/resolv.conf # environment: # - MG_LOG_LEVEL=ERROR # networks: # - slurm_cluster # Database server where Slurm will keep accounting information mysql: image: mariadb:10.10 hostname: mysql container_name: mysql environment: MYSQL_RANDOM_ROOT_PASSWORD: "yes" MYSQL_DATABASE: slurm_acct_db MYSQL_USER: slurm MYSQL_PASSWORD: password volumes: - var_lib_mysql:/var/lib/mysql networks: - slurm_cluster # Slurm DBD daemon slurmdbd: image: slurm-docker-cluster:${IMAGE_TAG:-21.08.6} build: context: slurm-docker-cluster args: SLURM_TAG: ${SLURM_TAG:-slurm-21-08-6-1} command: [ "slurmdbd" ] container_name: slurmdbd hostname: slurmdbd volumes: # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data networks: - slurm_cluster expose: - "6819" depends_on: - mysql # Slurm controller daemon slurmctld: image: slurm-docker-cluster:${IMAGE_TAG:-21.08.6} command: [ "slurmctld" ] container_name: slurmctld hostname: slurmctld volumes: # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data networks: slurm_cluster: ipv4_address: 192.18.0.129 expose: - "6817" depends_on: - "slurmdbd" # Login node login: hostname: login.docker.cluster container_name: login command: [ "sshd" ] tmpfs: #################### systemd ############################################# # temporary file systems - /tmp - /run <<: *compute-node volumes: #################### systemd ############################################# # cgroups - /sys/fs/cgroup:/sys/fs/cgroup:ro #################### MUNGE ############################################### # munge configuration files - etc_munge:/etc/munge # munge key file (for authentication) - ./volumes/etc_munge/munge.key:/etc/munge/munge.key #################### SLURM ############################################### # slurm config files - ./volumes/etc_slurm:/etc/slurm # slurm source code (for debugging) - /home/amiranda/var/projects/slurm:/slurm # slurm job directory - slurm_jobdir:/data #################### SSHD ################################################ # sshd configuration files - ./volumes/etc_ssh:/etc/ssh #################### SCORD ############################################### # scord install prefix - ./volumes/scord_prefix:/scord_prefix # scord ld.so.conf.d - ./volumes/ld.so.conf.d/libscord.conf:/etc/ld.so.conf.d/libscord.conf #################### CARGO ############################################### - ./volumes/cargo_prefix:/cargo_prefix - ./volumes/ld.so.conf.d/libcargo.conf:/etc/ld.so.conf.d/libcargo.conf #################### ENTRYPOINT ########################################## - ./volumes/docker-~.sh:/usr/local/bin/docker-entrypoint.sh #################### USER ################################################ - ./volumes/user_home:/home/amiranda - /home/amiranda/var/projects/scord/repo:/home/amiranda/repo - /home/amiranda/var/projects/cargo/repo:/home/amiranda/cargo/repo networks: slurm_cluster: ipv4_address: 192.18.0.128 # Compute nodes c1: hostname: c1 container_name: c1 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.10 c2: hostname: c2 container_name: c2 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.11 c3: hostname: c3 container_name: c3 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.12 c4: hostname: c4 container_name: c4 <<: *compute-node networks: slurm_cluster: ipv4_address: 192.18.0.13 # Volumes to persist data volumes: etc_munge: # etc_slurm: slurm_jobdir: var_lib_mysql: networks: slurm_cluster: driver: bridge name: slurm_cluster ipam: driver: default config: - subnet: 192.18.0.0/24