version: "3.7" services: init: command: /bin/sh -c " ./scripts/create_mount_directories.sh /local_parent ${HACK_LOCAL_ROOT_PARENT} ${LOCAL_ROOT}; ./scripts/create_mount_directories.sh /dev_parent ${HACK_DEV_ROOT_PARENT} ${DEV_ROOT}/db; ./scripts/create_mount_directories.sh /dev_parent ${HACK_DEV_ROOT_PARENT} ${DEV_ROOT}/data; ./scripts/create_mount_directories.sh /dev_parent ${HACK_DEV_ROOT_PARENT} ${DEV_ROOT}/workspace; " environment: - HACK_DEV_ROOT_PARENT=${HACK_DEV_ROOT_PARENT} - DEV_ROOT=${DEV_ROOT} - HACK_LOCAL_ROOT_PARENT=${HACK_LOCAL_ROOT_PARENT} - LOCAL_ROOT=${LOCAL_ROOT} volumes: - ${HACK_DEV_ROOT_PARENT}:/dev_parent - ${HACK_LOCAL_ROOT_PARENT}:/local_parent db: ports: - 5432:5432 volumes: - ${DEV_ROOT}/db:/var/lib/postgresql/data seed: command: /bin/sh -c "./scripts/copy_seed_data.sh" volumes: - ${DEV_ROOT}/data:/seed scheduler: volumes: - /var/run/docker.sock:/var/run/docker.sock - ${DEV_ROOT}/workspace:${WORKSPACE_ROOT} - ${DEV_ROOT}/data:${CONFIG_ROOT} - ${LOCAL_ROOT}:${LOCAL_DOCKER_MOUNT} server: volumes: - ${DEV_ROOT}/workspace:${WORKSPACE_ROOT} - ${DEV_ROOT}/data:${CONFIG_ROOT} webapp: volumes: # needed so that we do not try to use the mount name to create the volume like we do in prod. workspace: