Skip to content

Commit 9e4f092

Browse files
committed
Dockerise everything
1 parent eaa655d commit 9e4f092

File tree

2 files changed

+44
-38
lines changed

2 files changed

+44
-38
lines changed

docker/build

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
11
#!/usr/bin/env bash
22

3-
set -e
3+
set -eu
44

5-
readonly DOCKER_DIRECTORY=$(realpath $(dirname $(realpath $0)))
6-
readonly VERSION_PATH=$DOCKER_DIRECTORY/../src/Version.php
5+
readonly ROOT_DIRECTORY=$(realpath $(dirname $(realpath $0))/..)
6+
readonly VERSION_PATH="${ROOT_DIRECTORY}/src/Version.php"
77
readonly IMAGE_NAME="phpbenchmarks/benchmark-kit"
8-
9-
readonly MAJOR_VERSION=$(php -r "require('$VERSION_PATH'); echo App\Version::MAJOR;")
10-
readonly MINOR_VERSION=$(php -r "require('$VERSION_PATH'); echo App\Version::MINOR;")
11-
readonly PATCH_VERSION=$(php -r "require('$VERSION_PATH'); echo App\Version::PATCH;")
12-
13-
readonly IMAGE_PATCH_TAG=$IMAGE_NAME:$MAJOR_VERSION.$MINOR_VERSION.$PATCH_VERSION
14-
readonly IMAGE_MINOR_TAG=$IMAGE_NAME:$MAJOR_VERSION.$MINOR_VERSION
15-
readonly IMAGE_MAJOR_TAG=$IMAGE_NAME:$MAJOR_VERSION
16-
178
readonly LOG_FILE="/tmp/benchmark-kit_build.log"
9+
readonly DOCKER_COMPOSER_CMD="docker run -it --user $(id -u):$(id -g) -v ${ROOT_DIRECTORY}:/app composer:1.10"
10+
11+
echo "Fetch Benchmark kit version."
12+
readonly DOCKER_VERSION_CMD="docker run --rm -v ${ROOT_DIRECTORY}/src/Version.php:/app/src/Version.php php:7.4-cli-alpine3.10 php -r"
13+
readonly MAJOR_VERSION=$(${DOCKER_VERSION_CMD} "require('/app/src/Version.php'); echo App\Version::MAJOR;")
14+
readonly MINOR_VERSION=$(${DOCKER_VERSION_CMD} "require('/app/src/Version.php'); echo App\Version::MINOR;")
15+
readonly PATCH_VERSION=$(${DOCKER_VERSION_CMD} "require('/app/src/Version.php'); echo App\Version::PATCH;")
16+
readonly IMAGE_PATCH_TAG="${IMAGE_NAME}:${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}"
17+
readonly IMAGE_MINOR_TAG="${IMAGE_NAME}:${MAJOR_VERSION}.${MINOR_VERSION}"
18+
readonly IMAGE_MAJOR_TAG="${IMAGE_NAME}:${MAJOR_VERSION}"
1819

1920
function rmLogFile() {
20-
if [ -f "$LOG_FILE" ]; then
21-
rm $LOG_FILE;
21+
if [ -f "${LOG_FILE}" ]; then
22+
rm "${LOG_FILE}";
2223
fi
2324
}
2425

2526
function onError() {
26-
if [ -f "$LOG_FILE" ]; then
27-
cat $LOG_FILE
27+
if [ -f "${LOG_FILE}" ]; then
28+
cat "${LOG_FILE}"
2829
rmLogFile
2930
fi
3031

@@ -34,59 +35,59 @@ function onError() {
3435
trap onError ERR
3536
rmLogFile
3637

37-
echo -n "Image to build: $IMAGE_PATCH_TAG? [Y/n] "
38+
echo -n "Image to build: ${IMAGE_PATCH_TAG}? [Y/n] "
3839
read validate
39-
if [ "$validate" != "" ] && [ "$validate" != "y" ] && [ "$validate" != "y" ]; then
40+
if [ "${validate}" != "" ] && [ "${validate}" != "y" ] && [ "${validate}" != "y" ]; then
4041
exit 1
4142
fi
4243

4344
dockerQuiet="-q"
4445
dockerNoCache=""
4546
push=false
4647
for param in "$@"; do
47-
if [ "$param" == "-v" ]; then
48+
if [ "${param}" == "-v" ]; then
4849
dockerQuiet=""
49-
elif [ "$param" == "--no-cache" ]; then
50+
elif [ "${param}" == "--no-cache" ]; then
5051
dockerNoCache="--no-cache"
51-
elif [ "$param" == "--push" ]; then
52+
elif [ "${param}" == "--push" ]; then
5253
push=true
5354
fi
5455
done
5556

5657
echo "Install Composer prod dependencies."
57-
composer install --no-dev > $LOG_FILE 2>&1
58+
${DOCKER_COMPOSER_CMD} install --no-dev > ${LOG_FILE} 2>&1
5859
rmLogFile
5960

6061
echo "Build image."
6162
docker \
6263
build \
63-
$DOCKER_DIRECTORY/.. \
64+
${ROOT_DIRECTORY} \
6465
--file=docker/Dockerfile \
65-
--tag=$IMAGE_PATCH_TAG \
66-
$dockerQuiet \
67-
$dockerNoCache
68-
docker tag $IMAGE_PATCH_TAG $IMAGE_MINOR_TAG
69-
docker tag $IMAGE_PATCH_TAG $IMAGE_MAJOR_TAG
66+
--tag=${IMAGE_PATCH_TAG} \
67+
${dockerQuiet} \
68+
${dockerNoCache}
69+
docker tag ${IMAGE_PATCH_TAG} ${IMAGE_MINOR_TAG}
70+
docker tag ${IMAGE_PATCH_TAG} ${IMAGE_MAJOR_TAG}
7071

71-
if [ $push == true ]; then
72+
if [ ${push} == true ]; then
7273
echo "Login to dockerhub."
73-
docker logout > $LOG_FILE 2>&1
74+
docker logout > ${LOG_FILE} 2>&1
7475
rmLogFile
7576
docker login --username=phpbenchmarks
7677

77-
echo "Push Docker image $IMAGE_PATCH_TAG."
78-
docker push $IMAGE_PATCH_TAG > $LOG_FILE 2>&1
78+
echo "Push Docker image ${IMAGE_PATCH_TAG}."
79+
docker push ${IMAGE_PATCH_TAG} > ${LOG_FILE} 2>&1
7980
rmLogFile
8081

81-
echo "Push Docker image $IMAGE_MINOR_TAG."
82-
docker push $IMAGE_MINOR_TAG > $LOG_FILE 2>&1
82+
echo "Push Docker image ${IMAGE_MINOR_TAG}."
83+
docker push ${IMAGE_MINOR_TAG} > ${LOG_FILE} 2>&1
8384
rmLogFile
8485

85-
echo "Push Docker image $IMAGE_MAJOR_TAG."
86-
docker push $IMAGE_MAJOR_TAG > $LOG_FILE 2>&1
86+
echo "Push Docker image ${IMAGE_MAJOR_TAG}."
87+
docker push ${IMAGE_MAJOR_TAG} > ${LOG_FILE} 2>&1
8788
rmLogFile
8889
fi
8990

9091
echo "Install Composer dev dependencies."
91-
composer install > $LOG_FILE 2>&1
92+
${DOCKER_COMPOSER_CMD} install > ${LOG_FILE} 2>&1
9293
rmLogFile

src/Benchmark/BenchmarkUrlService.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ public static function getPhpinfoUrl(): string
4646

4747
public static function getPreloadGeneratorUrl(): string
4848
{
49-
return 'http://' . static::PRELOAD_GENERATOR_HOST . ':' . static::getNginxPort() . Benchmark::getBenchmarkRelativeUrl();
49+
return
50+
'http://'
51+
. static::PRELOAD_GENERATOR_HOST
52+
. ':'
53+
. static::getNginxPort()
54+
. Benchmark::getBenchmarkRelativeUrl();
5055
}
5156

5257
public static function getNginxPort(): int

0 commit comments

Comments
 (0)