Skip to content

Commit a96876c

Browse files
committed
wsc setup script
1 parent ee77cf4 commit a96876c

2 files changed

Lines changed: 53 additions & 0 deletions

File tree

conf/wsc-setup-preparation.sh

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/sh
2+
3+
: "${WSC_SETUP_ENABLED:="0"}" # enable for download and unpack WSC (from https://www.woltlab.com/en/woltlab-suite-download/)
4+
: "${WSC_VERSION:="6.2"}" # example: 6.1 or 6.2
5+
: "${WSC_DEV_INSTALL_ENABLED:="0"}" # for an almost unattended installation (need variables_order=EGPCS in PHP config and WCFSETUP_* ENVs)
6+
: "${DOCUMENT_ROOT:="/var/www/html"}" # default: /var/www/html
7+
8+
if [ "$WSC_SETUP_ENABLED" -eq "1" -a -n "$WSC_VERSION" ]; then
9+
10+
TMP_DIR="$(mktemp -d)"
11+
#echo ">> DIR=$TMP_DIR"
12+
13+
TAGS=$(
14+
curl -sL https://api.github.com/repos/WoltLab/WCF/tags |
15+
grep '"name"' |
16+
cut -d'"' -f4 |
17+
sed 's/_/-/g' |
18+
grep -Ev '(dev|Alpha)' |
19+
tr '[:upper:]' '[:lower:]' |
20+
sort -rV
21+
)
22+
23+
STABLE=$(echo "$TAGS" | grep -E "^[0-9]+\.[0-9]+\.[0-9]+$" | head -n1)
24+
LATEST=$(echo "$TAGS" | head -n1)
25+
echo ">> Info (WSC Versions): stable=${STABLE} ; latest=${LATEST}"
26+
VERSION=$(echo "$TAGS" | grep -E "^${WSC_VERSION}" | head -n1)
27+
echo ">> Selected Version: ${VERSION}"
28+
29+
#if [ -z "$(ls -A "$DOCUMENT_ROOT")" ]; then
30+
if [ ! -f "$DOCUMENT_ROOT/index.php" ]; then
31+
FILENAME="wsc-${VERSION}.zip"
32+
echo ">> Downloading Installer-Archive (.zip)..."
33+
curl -sL -o "/${TMP_DIR}/${FILENAME}" "https://assets.woltlab.com/release/woltlab-suite-${VERSION}.zip"
34+
#echo ">> List content of Archive ..."
35+
#unzip -l "/${TMP_DIR}/${FILENAME}" | head
36+
echo ">> Unpack Archive File to ${DOCUMENT_ROOT} ..."
37+
unzip -q -j -o "/${TMP_DIR}/${FILENAME}" "upload/*" -d "${DOCUMENT_ROOT}"
38+
if [ "$WSC_DEV_INSTALL_ENABLED" -eq "1" ] ; then
39+
echo ">> set dev as install mode (unattended installation) ..."
40+
sed -i 's|href="install.php"|href="install.php?dev=1"|g' "${DOCUMENT_ROOT}/test.php"
41+
fi
42+
else
43+
echo ">> Target Folder ${DOCUMENT_ROOT} is not empty. Download & Unpacking canceled!"
44+
#ls -A ${DOCUMENT_ROOT}
45+
fi
46+
#ls -lah $TMP_DIR
47+
rm -rf "$TMP_DIR"
48+
49+
fi

dhi.helper.Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ SCRIPT_NAME="${PHP_FPM_PING_PATH}" SCRIPT_FILENAME="${PHP_FPM_PING_PATH}" REQUES
1616
echo $?
1717
EOF
1818

19+
COPY conf/wsc-setup-preparation.sh /usr/local/bin/php-fpm-healthcheck.sh
20+
1921
RUN chmod +x /usr/local/bin/*.sh
2022

2123

@@ -52,6 +54,7 @@ RUN \
5254
#RUN tree /apkroot
5355

5456
COPY --from=dev-alpine /usr/local/bin/php-fpm-healthcheck.sh /apkroot/usr/local/bin/php-fpm-healthcheck.sh
57+
COPY --from=dev-alpine /usr/local/bin/wsc-setup-preparation.sh /apkroot/usr/local/bin/wsc-setup-preparation.sh
5558

5659
RUN tree /apkroot
5760

@@ -109,6 +112,7 @@ RUN apt-get update && \
109112
rm -rf /var/lib/apt/lists/*
110113

111114
COPY --from=dev-alpine /usr/local/bin/php-fpm-healthcheck.sh /usr/local/bin/php-fpm-healthcheck.sh
115+
COPY --from=dev-alpine /usr/local/bin/wsc-setup-preparation.sh /usr/local/bin/wsc-setup-preparation.sh
112116

113117
WORKDIR /tmp
114118
USER nonroot

0 commit comments

Comments
 (0)