Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions bash/buildImages.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/usr/bin/env bash

function buildImages {
NAME=$1
VERSION=$2
USERID=${3:-1000}
PHP=${4-:"all"}

imageExists "${NAME}:${VERSION}-php56xdebug"
if [[ $? == 0 ]] && [[ "$PHP" == "php56xdebug" || "$PHP" == "all" ]]; then
docker build -t "${NAME}:${VERSION}-php56xdebug" --build-arg "USERID=$USERID" docker/php56xdebug
fi

imageExists "${NAME}:${VERSION}-php70xdebug"
if [[ $? == 0 ]] && [[ "$PHP" == "php70xdebug" || "$PHP" == "all" ]]; then
docker build -t "${NAME}:${VERSION}-php70xdebug" --build-arg "USERID=$USERID" docker/php70xdebug
fi

imageExists "${NAME}:${VERSION}-php71xdebug"
if [[ $? == 0 ]] && [[ "$PHP" == "php71xdebug" || "$PHP" == "all" ]]; then
docker build -t "${NAME}:${VERSION}-php71xdebug" --build-arg "USERID=$USERID" docker/php71xdebug
fi

imageExists "${NAME}:${VERSION}-nginx"
if [[ $? == 0 ]]; then
docker build -t "${NAME}:${VERSION}-nginx" docker/nginx
fi
}
11 changes: 11 additions & 0 deletions bash/checkImageExists.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash

function imageExists {
IMAGE_NAME=$1
if docker history -q "$IMAGE_NAME" > /dev/null 2>&1; then
echo - "$IMAGE_NAME already exist"
return 1;
fi

return 0;
}
16 changes: 16 additions & 0 deletions bash/defineVariables.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

function defineVariables
{
export APP_NAME=$(echo $(cat composer.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[",\r]//g' | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]'))
export APP_VERSION=$(echo $(cat composer.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",\r]//g'))
export PROJECT_NAME="$APP_NAME"
export PROJECT_WEB_DIR=${PROJECT_WEB_DIR:="web"}
export PROJECT_INDEX_FILE=${PROJECT_INDEX_FILE:="index.php"}
export PROJECT_DEV_INDEX_FILE=${PROJECT_DEV_INDEX_FILE:="index_dev.php"}

USERID=$(id -u);
echo "User ID: $USERID";
echo -e "\nIMAGE VERSION: $APP_NAME:$APP_VERSION\n";
declare -i BUILD_STATUS=0;
}
16 changes: 16 additions & 0 deletions bash/runBuild.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

function runBuild {
export IMAGE_VERSION=$1
export PROJECT_XDEBUG_ENABLED=${2:-false}
BUILD_OUTPUT=$(docker-compose up php)
docker-compose kill > /dev/null 2>&1
docker-compose rm -f -v > /dev/null 2>&1

echo -e "$BUILD_OUTPUT";
if echo "$BUILD_OUTPUT" | grep -q "exited with code 0"; then
BUILD_STATUS=0;
else
BUILD_STATUS=1;
fi
}
13 changes: 13 additions & 0 deletions bash/runInBackground.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/usr/bin/env bash

function runInBackground {
export IMAGE_VERSION=$1
export PROJECT_XDEBUG_ENABLED=${2:-false}

docker-compose -f docker-compose.yml -f docker-compose.local.yml kill > /dev/null 2>&1
docker-compose -f docker-compose.yml -f docker-compose.local.yml rm -f -v > /dev/null 2>&1
docker-compose -f docker-compose.yml -f docker-compose.local.yml up -d nginx php mysql
docker-compose -f docker-compose.yml -f docker-compose.local.yml exec php bash
docker-compose -f docker-compose.yml -f docker-compose.local.yml kill > /dev/null 2>&1
docker-compose -f docker-compose.yml -f docker-compose.local.yml rm -f -v > /dev/null 2>&1
}
2 changes: 1 addition & 1 deletion docker-compose.local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ mysql:
- ./data:/var/lib/mysql

nginx:
image: "${PROJECT_NAME}:${APP_VERSION}-nginx"
image: "${APP_NAME}:${APP_VERSION}-nginx"
ports:
- "8000:80"
links:
Expand Down
90 changes: 15 additions & 75 deletions docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,85 +4,25 @@ PROJECT_TASK_NAME=$1;
PROJECT_PHP_VERSION=${2:-71};
PROJECT_WITH_COVERAGE=${3:-false};

export APP_NAME=$(echo $(cat composer.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[",\r]//g' | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]'))
export APP_VERSION=$(echo $(cat composer.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",\r]//g'))
export PROJECT_NAME="$APP_NAME"
export PROJECT_WEB_DIR=${PROJECT_WEB_DIR:="web"}
export PROJECT_INDEX_FILE=${PROJECT_INDEX_FILE:="index.php"}
export PROJECT_DEV_INDEX_FILE=${PROJECT_DEV_INDEX_FILE:="index_dev.php"}
__DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${__DIR}"

USERID=$(id -u);
echo "User ID: $USERID";
echo -e "\nIMAGE VERSION: $APP_NAME:$APP_VERSION\n";
declare -i BUILD_STATUS=0;
FILES=(
'buildImages.sh'
'checkImageExists.sh'
'defineVariables.sh'
'runBuild.sh'
'runInBackground.sh'
)

echo -e "All defined variables:\n"
( set -o posix ; set ) | grep 'PROJECT|APP'

function imageExists {
IMAGE_NAME=$1
if docker history -q "$IMAGE_NAME" > /dev/null 2>&1; then
echo - "$IMAGE_NAME already exist"
return 1;
fi

return 0;
}

function buildImages {
NAME=$1
VERSION=$2
USERID=${3:-1000}
PHP=${4-:"all"}

imageExists "${NAME}:${VERSION}-php56xdebug"
if [[ $? == 0 ]] && [[ "$PHP" == "php56xdebug" || "$PHP" == "all" ]]; then
docker build -t "${NAME}:${VERSION}-php56xdebug" --build-arg "USERID=$USERID" docker/php56xdebug
fi

imageExists "${NAME}:${VERSION}-php70xdebug"
if [[ $? == 0 ]] && [[ "$PHP" == "php70xdebug" || "$PHP" == "all" ]]; then
docker build -t "${NAME}:${VERSION}-php70xdebug" --build-arg "USERID=$USERID" docker/php70xdebug
fi
for FILE in "${FILES[@]}" ; do
source "bash/${FILE}"
done

imageExists "${NAME}:${VERSION}-php71xdebug"
if [[ $? == 0 ]] && [[ "$PHP" == "php71xdebug" || "$PHP" == "all" ]]; then
docker build -t "${NAME}:${VERSION}-php71xdebug" --build-arg "USERID=$USERID" docker/php71xdebug
fi
defineVariables

imageExists "${NAME}:${VERSION}-nginx"
if [[ $? == 0 ]]; then
docker build -t "${NAME}:${VERSION}-nginx" docker/nginx
fi
}

function runBuild {
export IMAGE_VERSION=$1
export PROJECT_XDEBUG_ENABLED=${2:-false}
BUILD_OUTPUT=$(docker-compose up php)
docker-compose kill > /dev/null 2>&1
docker-compose rm -f -v > /dev/null 2>&1

echo -e "$BUILD_OUTPUT";
if echo "$BUILD_OUTPUT" | grep -q "exited with code 0"; then
BUILD_STATUS=0;
else
BUILD_STATUS=1;
fi

}

function runInBackground {
export IMAGE_VERSION=$1
export PROJECT_XDEBUG_ENABLED=${2:-false}

docker-compose -f docker-compose.yml -f docker-compose.local.yml kill > /dev/null 2>&1
docker-compose -f docker-compose.yml -f docker-compose.local.yml rm -f -v > /dev/null 2>&1
docker-compose -f docker-compose.yml -f docker-compose.local.yml up -d nginx php mysql
docker-compose -f docker-compose.yml -f docker-compose.local.yml exec php bash
docker-compose -f docker-compose.yml -f docker-compose.local.yml kill > /dev/null 2>&1
docker-compose -f docker-compose.yml -f docker-compose.local.yml rm -f -v > /dev/null 2>&1
}
echo -e "All defined variables:\n"
( set -o posix ; set ) | grep 'PROJECT|APP'

if [[ $PROJECT_TASK_NAME == '' ]]; then
echo -e "Available tasks:";
Expand Down
2 changes: 2 additions & 0 deletions docker/php56xdebug/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ RUN apt-get -qq update --fix-missing && \
libkrb5-dev \
cloc \
git-core \
zip \
unzip \
&& rm -rf /var/lib/apt/lists/*

COPY docker-php-pecl-install /usr/local/bin/
Expand Down
2 changes: 2 additions & 0 deletions docker/php70xdebug/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ RUN apt-get -qq update --fix-missing && \
libkrb5-dev \
cloc \
git-core \
zip \
unzip \
&& rm -rf /var/lib/apt/lists/*

COPY docker-php-pecl-install /usr/local/bin/
Expand Down
2 changes: 2 additions & 0 deletions docker/php71xdebug/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ RUN apt-get -qq update --fix-missing && \
libkrb5-dev \
cloc \
git-core \
zip \
unzip \
&& rm -rf /var/lib/apt/lists/*

COPY docker-php-pecl-install /usr/local/bin/
Expand Down