#!/usr/bin/env bash set -e if [[ "$OSTYPE" == "darwin"* ]]; then if hash docker 2>/dev/null; then CONTAINER_RUNTIME=docker else echo "Error! We could not find docker on your Mac!" echo "Please install Docker for Mac:" echo "https://docs.docker.com/docker-for-mac/install/" exit 1 fi if hash docker-compose 2>/dev/null; then CONTAINER_COMPOSE=docker-compose else echo "Error! We could not find a docker-compose on your Mac!" echo "Please install Docker for Mac:" echo "https://docs.docker.com/docker-for-mac/install/" exit 1 fi echo "Building the DEV container image!" if [ "${CONTAINER_RUNTIME}" = "docker" ]; then echo "This will take a while if you are building the container for the first time." docker-compose build elif [ "${CONTAINER_RUNTIME}" = "podman" ]; then podman-compose build fi elif [[ "$OSTYPE" == "linux-gnu"* ]]; then if hash podman 2>/dev/null; then CONTAINER_RUNTIME=podman elif hash docker 2>/dev/null; then CONTAINER_RUNTIME=docker else echo "Error! We could not find a container runtime on your Linux install!" echo "Please install Podman v1.9.3 or greater:" echo "https://podman.io/getting-started/installation.html" exit 1 fi if hash podman-compose 2>/dev/null; then CONTAINER_COMPOSE=podman-compose elif hash docker 2>/dev/null; then CONTAINER_COMPOSE=docker-compose else echo "Error! We could not find ${CONTAINER_COMPOSE} on your Linux install!" echo "Please install Podman Compose:" echo "https://github.com/containers/podman-compose#installation" exit 1 fi else echo "Oof! Sorry! This OS is unsupported! :(" fi echo "Starting the DEV container stack..." if [ "${CONTAINER_RUNTIME}" = "docker" ]; then if [[ ! -d .gems/ || ! "$(ls -A .gems)" ]]; then echo "The .gems directory is empty or does not exist." echo "This will cause bundle install to run which takes a long time with ${CONTAINER_RUNTIME}." echo "Depending on your hardware specs, the initial setup can take" echo "30 to 45 minutes. Please stand by..." sleep 10 fi docker-compose up elif [ "${CONTAINER_RUNTIME}" = "podman" ]; then if podman pod exists devto; then echo "The devto pod is already setup. Please run:" echo "" echo "podman-compose -p devto -f container-compose.yml down" echo "" echo "to bring down the DEV container stack before running container-setup." else podman-compose -p devto -f container-compose.yml up fi fi