diff --git a/run/scripts/start b/run/scripts/start index d5f0ccad2cd7380ef890990eeb213c549235ab67..c3b4b63ec2db007beea1519af06569395215c51a 100755 --- a/run/scripts/start +++ b/run/scripts/start @@ -1,28 +1,28 @@ #!/bin/bash -function getConfig { +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;; - 7.4 ) break;; - 8.0 ) break;; - * ) echo "Version not supported.";; - esac + 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 ;; + 7.4) break ;; + 8.0) 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 + 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 @@ -30,42 +30,20 @@ function getConfig { fi } -function startContainer { +function startContainer() { if [[ -n ${COMPOSE_PROJECT_NAME} ]]; then - if [[ $COMPOSE_PROJECT_NAME = "." ]]; then - docker run -it \ - --hostname ${COMPOSE_PROJECT_NAME}-l3d \ - --user ${USERID}:${GROUPID} \ - --group-add ${GROUPIDS// / --group-add } \ - --env L3DVERSION=${L3DVERSION} \ - --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} \ - --env HOMEDIR=${HOMEDIR} \ - --env WORKDIR=${WORKDIR} \ - --env SSHAUTH=${SSHAUTH} \ - --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 \ - registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION} \ - /usr/local/bin/.start - return - fi - ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_l3d$) - if [[ -n ${ID} ]]; then - docker start ${COMPOSE_PROJECT_NAME}_l3d + mode=REBUILD + if [[ $COMPOSE_PROJECT_NAME == "." ]]; then + mode=NONPRESISTENT else + ID=$(docker container ls --all -q -f name=^${COMPOSE_PROJECT_NAME}_l3d$) + if [[ -n ${ID} ]]; then + docker start ${COMPOSE_PROJECT_NAME}_l3d + mode=REGULAR + fi + fi + if [[ "$mode" != "REGULAR" ]]; then start_params=( - --hostname ${COMPOSE_PROJECT_NAME}-l3d --env L3DVERSION=${L3DVERSION} --env L3DSHELL=${L3DSHELL} --env HOME=/home/${USERNAME} @@ -90,15 +68,32 @@ function startContainer { --volume /etc/sudoers:/etc/sudoers:ro --volume /etc/sudoers.d:/etc/sudoers.d:ro ) - # else + # else # (see #62) Disabled for now. #start_params+=( # --volume ${HOMEDIR}/.passwd:/etc/passwd:ro #) fi - docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \ - "${start_params[@]}" \ - registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION} + if [[ "$mode" != "REBUILD" ]]; then + start_params+=( + --hostname ${COMPOSE_PROJECT_NAME}-l3d + ) + docker run --name ${COMPOSE_PROJECT_NAME}_l3d -dt \ + "${start_params[@]}" \ + registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION} + else + start_params+=( + --hostname "L3D" + --env HOMEDIR=${HOMEDIR} + --env WORKDIR=${WORKDIR} + --env SSHAUTH=${SSHAUTH} + ) + docker run -it \ + "${start_params[@]}" \ + registry.lakedrops.com/docker/l3d/php-${PHP_VERSION}:${L3DVERSION} \ + /usr/local/bin/.start + return + fi fi docker exec -it \ --env HOMEDIR=${HOMEDIR} \ @@ -110,7 +105,7 @@ function startContainer { } if [[ -n $1 ]]; then - if [[ "$1" = "." ]]; then + if [[ "$1" == "." ]]; then COMPOSE_PROJECT_NAME=. else ID=$(docker container ls --all -q -f name=^$1_l3d$)