-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.sh
More file actions
executable file
·154 lines (117 loc) · 5.35 KB
/
build.sh
File metadata and controls
executable file
·154 lines (117 loc) · 5.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#!/bin/bash
# phpMyAdmin
# A php-fpm container running phpMyAdmin.
#
# Copyright (c) 2021 SGS Serious Gaming & Simulations GmbH
#
# This work is licensed under the terms of the MIT license.
# For a copy, see LICENSE file or <https://opensource.org/licenses/MIT>.
#
# SPDX-License-Identifier: MIT
# License-Filename: LICENSE
set -eu -o pipefail
export LC_ALL=C.UTF-8
[ -v CI_TOOLS ] && [ "$CI_TOOLS" == "SGSGermany" ] \
|| { echo "Invalid build environment: Environment variable 'CI_TOOLS' not set or invalid" >&2; exit 1; }
[ -v CI_TOOLS_PATH ] && [ -d "$CI_TOOLS_PATH" ] \
|| { echo "Invalid build environment: Environment variable 'CI_TOOLS_PATH' not set or invalid" >&2; exit 1; }
source "$CI_TOOLS_PATH/helper/common.sh.inc"
source "$CI_TOOLS_PATH/helper/container.sh.inc"
source "$CI_TOOLS_PATH/helper/container-alpine.sh.inc"
source "$CI_TOOLS_PATH/helper/php.sh.inc"
source "$CI_TOOLS_PATH/helper/git.sh.inc"
BUILD_DIR="$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)"
source "$BUILD_DIR/container.env"
readarray -t -d' ' TAGS < <(printf '%s' "$TAGS")
VERSION="$(git_latest "$MERGE_IMAGE_GIT_REPO" "$VERSION_PATTERN")"
git_clone "$MERGE_IMAGE_GIT_REPO" "refs/tags/$VERSION" "$BUILD_DIR/vendor" "./vendor"
echo + "HASH=\"\$(git -C ./vendor rev-parse HEAD)\"" >&2
HASH="$(git -C "$BUILD_DIR/vendor" rev-parse HEAD)"
con_build --tag "$IMAGE-base" \
--from "$BASE_IMAGE" --check-from "$MERGE_IMAGE_BASE_IMAGE_PATTERN" \
"$BUILD_DIR/vendor/$MERGE_IMAGE_BUD_CONTEXT" "./vendor/$MERGE_IMAGE_BUD_CONTEXT"
echo + "CONTAINER=\"\$(buildah from $(quote "$IMAGE-base"))\"" >&2
CONTAINER="$(buildah from "$IMAGE-base")"
echo + "MOUNT=\"\$(buildah mount $(quote "$CONTAINER"))\"" >&2
MOUNT="$(buildah mount "$CONTAINER")"
PHP_FPM_OPEN_BASEDIR_CONF=( "/var/www/" "/etc/phpmyadmin/" "/usr/local/lib/php/" "/tmp/php/" "/dev/urandom" )
cmd php_patch_config_list -a "$CONTAINER" "/etc/php-fpm/pool.d/www.conf" \
"php(_admin)?_(flag|value)" \
"php_admin_value[open_basedir]" "$(IFS=:; echo "${PHP_FPM_OPEN_BASEDIR_CONF[*]}")" \
"php_admin_value[memory_limit]" "512M" \
"php_admin_value[max_execution_time]" "600" \
"php_admin_value[upload_max_filesize]" "256M" \
"php_admin_value[post_max_size]" "264M"
echo + "rm -f …/docker-entrypoint.sh" >&2
rm -f "$MOUNT/docker-entrypoint.sh"
echo + "rm -f …/etc/php/conf.d/phpmyadmin-misc.ini" >&2
rm -f "$MOUNT/etc/php/conf.d/phpmyadmin-misc.ini"
echo + "rm -rf …/etc/phpmyadmin" >&2
rm -rf "$MOUNT/etc/phpmyadmin"
echo + "rmdir …/var/www/html/tmp" >&2
rmdir "$MOUNT/var/www/html/tmp"
echo + "rmdir …/sessions" >&2
rmdir "$MOUNT/sessions"
echo + "rsync -v -rl --exclude .gitignore ./src/ …/" >&2
rsync -v -rl --exclude '.gitignore' "$BUILD_DIR/src/" "$MOUNT/"
echo + "mv …/var/www/html …/usr/src/phpmyadmin/phpmyadmin" >&2
mv "$MOUNT/var/www/html" "$MOUNT/usr/src/phpmyadmin/phpmyadmin"
cmd buildah run "$CONTAINER" -- \
chown -R root:root "/usr/src/phpmyadmin/phpmyadmin"
echo + "mkdir -p …/var/www/html" >&2
mkdir -p "$MOUNT/var/www/html"
cmd buildah run "$CONTAINER" -- \
chown www-data:www-data "/var/www/html"
echo + "PMA_VERSION=\"\$(buildah run $CONTAINER -- /bin/sh -c 'echo \"\$VERSION\"')\"" >&2
PMA_VERSION="$(buildah run "$CONTAINER" -- /bin/sh -c 'echo "$VERSION"')"
echo + "PMA_SHA256=\"\$(buildah run $CONTAINER -- /bin/sh -c 'echo \"\$SHA256\"')\"" >&2
PMA_SHA256="$(buildah run "$CONTAINER" -- /bin/sh -c 'echo "$SHA256"')"
echo + "PMA_URL=\"\$(buildah run $CONTAINER -- /bin/sh -c 'echo \"\$URL\"')\"" >&2
PMA_URL="$(buildah run "$CONTAINER" -- /bin/sh -c 'echo "$URL"')"
cmd buildah run "$CONTAINER" -- \
/bin/sh -c "printf '%s=%s\n' \"\$@\" > /usr/src/phpmyadmin/version_info" -- \
VERSION "$VERSION" \
HASH "$HASH" \
PMA_VERSION "$PMA_VERSION" \
PMA_SHA256 "$PMA_SHA256" \
PMA_URL "$PMA_URL"
pkg_install "$CONTAINER" --virtual .pma-run-deps \
rsync
user_add "$CONTAINER" mysql 65538
cleanup "$CONTAINER"
con_cleanup "$CONTAINER"
cmd buildah config \
--env PMA_SSL_DIR- \
--env MAX_EXECUTION_TIME- \
--env MEMORY_LIMIT- \
--env UPLOAD_LIMIT- \
--env TZ- \
--env SESSION_SAVE_PATH- \
--env VERSION- \
--env SHA256- \
--env URL- \
--user root \
"$CONTAINER"
cmd buildah config \
--env PMA_VERSION="$PMA_VERSION" \
"$CONTAINER"
cmd buildah config \
--entrypoint '[ "/entrypoint.sh" ]' \
"$CONTAINER"
cmd buildah config \
--volume "/var/www" \
--volume "/run/mysql" \
"$CONTAINER"
cmd buildah config \
--annotation org.opencontainers.image.title="phpMyAdmin" \
--annotation org.opencontainers.image.description="A php-fpm container running phpMyAdmin." \
--annotation org.opencontainers.image.version="$PMA_VERSION" \
--annotation org.opencontainers.image.url="https://github.com/SGSGermany/phpmyadmin" \
--annotation org.opencontainers.image.authors="SGS Serious Gaming & Simulations GmbH" \
--annotation org.opencontainers.image.vendor="SGS Serious Gaming & Simulations GmbH" \
--annotation org.opencontainers.image.licenses="MIT" \
--annotation org.opencontainers.image.base.name="$BASE_IMAGE" \
--annotation org.opencontainers.image.base.digest="$(podman image inspect --format '{{.Digest}}' "$BASE_IMAGE")" \
--annotation org.opencontainers.image.created="$(date -u +'%+4Y-%m-%dT%H:%M:%SZ')" \
"$CONTAINER"
con_commit "$CONTAINER" "$IMAGE" "${TAGS[@]}"