Skip to content
Snippets Groups Projects
start 3.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/bin/bash
    
    function getConfig {
      if [[ ! -n ${PHP_VERSION} ]]; then
        while true; do
            read -p "Which PHP version is your project using? " PHP_VERSION
            case ${PHP_VERSION} in
                7.0 ) break;;
                7.1 ) break;;
                7.2 ) break;;
    
                7.3 ) break;;
    
    jurgenhaas's avatar
    jurgenhaas committed
                7.4 ) break;;
    
                * ) echo "Version not supported.";;
            esac
        done
      fi
    
      if [[ ! -n ${COMPOSER_DOWNGRADE} ]]; then
        while true; do
            read -p "Do you want to downgrade Composer to version 1? " COMPOSER_DOWNGRADE
            case ${COMPOSER_DOWNGRADE} in
                0 ) break;;
                1 ) break;;
                * ) echo "Only 1 or 0 are valid responses.";;
            esac
        done
      fi
    
      if [[ ! -n ${COMPOSE_PROJECT_NAME} ]]; then
        read -p "Name your project (used as subdomain): " COMPOSE_PROJECT_NAME
      fi
    }
    
    function startContainer {
      if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then
    
        ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_l3d$)
    
        if [[ -n ${ID} ]]; then
          docker start ${COMPOSE_PROJECT_NAME}_l3d
        else
    
          case "${L3DHOSTOS}" in
            Darwin*)
              docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \
                --hostname ${COMPOSE_PROJECT_NAME}-l3d \
                --group-add ${GROUPIDS// / --group-add } \
                --env L3DSHELL=${L3DSHELL} \
                --env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} \
                --env COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE} \
                --env PHP_VERSION=${PHP_VERSION} \
                --env SSH_AUTH_SOCK=${SSHAUTHSOCK} \
                --volume /var/run/docker.sock:/var/run/docker.sock \
                --volume ${WORKDIR}:/drupal \
                --volume /etc/group:/etc/group:ro \
                --volume /etc/passwd:/etc/passwd:ro \
                --volume /etc/shadow:/etc/shadow:ro \
                --volume /etc/sudoers:/etc/sudoers:ro \
                --volume /etc/sudoers.d:/etc/sudoers.d:ro \
                --volume ${SSHAUTH}:${SSHAUTHSOCK} \
                --volume ${HOMEDIR}:${HOMEDIR} \
                --workdir /drupal \
                --restart unless-stopped \
                registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION}
              ;;
            *)
              docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \
                --hostname ${COMPOSE_PROJECT_NAME}-l3d \
                --user ${USERID}:${GROUPID} \
                --group-add ${GROUPIDS// / --group-add } \
                --env L3DSHELL=${L3DSHELL} \
                --env COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} \
                --env COMPOSER_DOWNGRADE=${COMPOSER_DOWNGRADE} \
                --env PHP_VERSION=${PHP_VERSION} \
                --env SSH_AUTH_SOCK=${SSHAUTHSOCK} \
                --volume /var/run/docker.sock:/var/run/docker.sock \
                --volume ${WORKDIR}:/drupal \
                --volume /etc/group:/etc/group:ro \
                --volume /etc/passwd:/etc/passwd:ro \
                --volume /etc/shadow:/etc/shadow:ro \
                --volume /etc/sudoers:/etc/sudoers:ro \
                --volume /etc/sudoers.d:/etc/sudoers.d:ro \
                --volume ${SSHAUTH}:${SSHAUTHSOCK} \
                --volume ${HOMEDIR}:${HOMEDIR} \
                --workdir /drupal \
                --restart unless-stopped \
                registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${VERSION}
          esac
    
          --env HOMEDIR=${HOMEDIR} \
          --env WORKDIR=${WORKDIR} \
          --env SSHAUTH=${SSHAUTH} \
    
          ${COMPOSE_PROJECT_NAME}_l3d \
          /usr/local/bin/.start
      fi
    }
    
    if [[ -n $1 ]]; then
    
      ID=$(docker container ls --all -q -f name=^$1_l3d$)
    
      if [[ -n ${ID} ]]; then
        PHP_VERSION=unknown
        COMPOSE_PROJECT_NAME=$1
      fi
    fi
    getConfig
    startContainer