From bb16d7634306b700a8015664f421653d3f981525 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sun, 14 Apr 2019 08:55:16 -0700 Subject: [PATCH 1/3] Update pre-commit I've provided a simpler approach to running grumphp inside a docker container. I've provided details to the project itself, for others to see here https://github.com/phpro/grumphp/pull/618#issuecomment-483001498 . I'm sharing this knowledge back with your project, as reviewing how you got it working helped me out. --- config/grumphp/hooks/pre-commit | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/config/grumphp/hooks/pre-commit b/config/grumphp/hooks/pre-commit index 26f6246..f17698a 100644 --- a/config/grumphp/hooks/pre-commit +++ b/config/grumphp/hooks/pre-commit @@ -20,17 +20,11 @@ DOCKER_PHP_CONTAINER_ID=$(docker-compose -f ${DOCKER_COMPOSE_FILE} ps -q phpfpm) # Remove single quotes from hook_command. It is needed to use it inside the docker exec HOOK_COMMAND=$(echo "$(HOOK_COMMAND)" | sed "s/'//g") -printf "%s\n" "${DIFF}" > "${DIFF_FILE}" && docker cp grumphp-diff ${DOCKER_PHP_CONTAINER_ID}:"/tmp/${DIFF_FILE}" - # Run GrumPHP -docker exec -t \ - -e HOOK_EXEC_PATH=${HOOK_EXEC_PATH} -e HOOK_COMMAND="${HOOK_COMMAND}" -e DIFF_FILE="${DIFF_FILE}" \ - ${DOCKER_PHP_CONTAINER_ID} sh -c \ - 'cd "${HOOK_EXEC_PATH}" && cat "/tmp/${DIFF_FILE}" | ${HOOK_COMMAND} --skip-success-output' -GRUMPHP_EXIT_CODE=$? +(cd "${HOOK_EXEC_PATH}" && echo "${DIFF}" | \ + exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_CONTAINER_ID}" \ + 'vendor/bin/grumphp' "${HOOK_COMMAND}" '--skip-success-output') -rm -f "${DIFF_FILE}" && docker exec -t \ - -u root -e DIFF_FILE="${DIFF_FILE}" \ - ${DOCKER_PHP_CONTAINER_ID} sh -c 'rm -f "/tmp/${DIFF_FILE}"' +GRUMPHP_EXIT_CODE=$? -exit $GRUMPHP_EXIT_CODE \ No newline at end of file +exit $GRUMPHP_EXIT_CODE From 096c93f19981870bb9b32e151cc170898d786ce2 Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sun, 14 Apr 2019 09:00:12 -0700 Subject: [PATCH 2/3] Update pre-commit Updated a path, to make it simpler. --- config/grumphp/hooks/pre-commit | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/grumphp/hooks/pre-commit b/config/grumphp/hooks/pre-commit index f17698a..eebd01c 100644 --- a/config/grumphp/hooks/pre-commit +++ b/config/grumphp/hooks/pre-commit @@ -21,7 +21,7 @@ DOCKER_PHP_CONTAINER_ID=$(docker-compose -f ${DOCKER_COMPOSE_FILE} ps -q phpfpm) HOOK_COMMAND=$(echo "$(HOOK_COMMAND)" | sed "s/'//g") # Run GrumPHP -(cd "${HOOK_EXEC_PATH}" && echo "${DIFF}" | \ +(cd "./" && echo "${DIFF}" | \ exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_CONTAINER_ID}" \ 'vendor/bin/grumphp' "${HOOK_COMMAND}" '--skip-success-output') From 46a81f4896b7f8734d38623aaff74a6bca445aeb Mon Sep 17 00:00:00 2001 From: Ryan Fowler Date: Sun, 5 May 2019 10:09:27 -0700 Subject: [PATCH 3/3] Update pre-commit.md Updated the file to retrieve the Docker image id of a given service via docker-compose and updated grumphp command --- config/grumphp/hooks/pre-commit | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/grumphp/hooks/pre-commit b/config/grumphp/hooks/pre-commit index eebd01c..cb23c02 100644 --- a/config/grumphp/hooks/pre-commit +++ b/config/grumphp/hooks/pre-commit @@ -15,14 +15,14 @@ if [[ ${DOCKER_COMPOSE_DIR} = *"/vendor/"* ]]; then DOCKER_COMPOSE_DIR=${VENDOR_PARENT_DIR}/.. fi DOCKER_COMPOSE_FILE=${DOCKER_COMPOSE_DIR}/docker-compose.yml -DOCKER_PHP_CONTAINER_ID=$(docker-compose -f ${DOCKER_COMPOSE_FILE} ps -q phpfpm) +DOCKER_PHP_IMAGE=$(docker-compose -f ${DOCKER_COMPOSE_FILE} images -q phpfpm) # Remove single quotes from hook_command. It is needed to use it inside the docker exec HOOK_COMMAND=$(echo "$(HOOK_COMMAND)" | sed "s/'//g") # Run GrumPHP (cd "./" && echo "${DIFF}" | \ - exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_CONTAINER_ID}" \ + exec 'docker' 'run' '--rm' '-t' "--volume=$PWD:${HOOK_EXEC_PATH}" "${DOCKER_PHP_IMAGE}" \ 'vendor/bin/grumphp' "${HOOK_COMMAND}" '--skip-success-output') GRUMPHP_EXIT_CODE=$?