Skip to content

Commit 9671636

Browse files
committed
fix(PHP): Upgrades PHP versions to latest stable releases, Upgrades OLS
- Updates README to include OLS 1.8.5, PHP 8.4, NodeJS 22 & 24 tags. - Updates v8.2 to v8.2.30. - Updates v8.3 to v8.3.30. - Updates v8.4 to v8.4.17. - Updates OLS to 1.8.5. - Drops PHP 8.0/8.1 & NodeJS 16. - Updates Linux to Bookworm/12. - Updates container testing to be more verbose and do a proper check for whether it's running.
1 parent 2e50f54 commit 9671636

File tree

5 files changed

+102
-62
lines changed

5 files changed

+102
-62
lines changed

.github/workflows/docker.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
- main
88

99
env:
10-
OLS_VERSION: '1.8.3'
11-
PHP_STABLE_VERSION: '8.3.21'
12-
NODE_STABLE_VERSION: '20'
10+
OLS_VERSION: '1.8.5'
11+
PHP_STABLE_VERSION: '8.3.30'
12+
NODE_STABLE_VERSION: '22'
1313
REGISTRY: ghcr.io
1414

1515
jobs:
@@ -19,16 +19,14 @@ jobs:
1919
fail-fast: false
2020
matrix:
2121
PHP_VERSION:
22-
- '8.0.30'
23-
- '8.1.32'
24-
- '8.2.28'
25-
- '8.3.21'
26-
- '8.4.7'
22+
- '8.2.30'
23+
- '8.3.30'
24+
- '8.4.17'
2725
NODE_VERSION:
28-
- '16'
2926
- '18'
3027
- '20'
3128
- '22'
29+
- '24'
3230

3331
steps:
3432
- name: Checkout

.github/workflows/test-builds.yml

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
- develop
88

99
env:
10-
OLS_VERSION: '1.8.3'
10+
OLS_VERSION: '1.8.5'
1111
REGISTRY: ghcr.io
1212

1313
jobs:
@@ -17,14 +17,11 @@ jobs:
1717
fail-fast: false
1818
matrix:
1919
PHP_VERSION:
20-
- '8.1.32'
21-
- '8.2.28'
22-
- '8.3.21'
23-
- '8.4.7'
20+
- '8.2.30'
21+
- '8.4.17'
2422
NODE_VERSION:
2523
- '18'
26-
- '20'
27-
- '22'
24+
- '24'
2825

2926
steps:
3027
- name: Checkout
@@ -80,14 +77,27 @@ jobs:
8077
- name: Test Docker Image
8178
run: |
8279
IMAGE=openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
83-
echo -e 'Testing PHP Info Site...'
80+
echo -e "::group::Testing PHP Info Site"
81+
echo -e '...starting Docker image...'
8482
ID=$(docker run -d ${IMAGE})
85-
sleep 5s
83+
echo -e '...waiting for Docker image to startup...'
84+
until [[ "`docker inspect -f {{.State.Running}} ${ID}`" == "true" ]]; do
85+
sleep 0.1
86+
done
87+
echo -e '...adding phpinfo test script, and restarting lsws service...'
8688
docker exec -i ${ID} su -c 'mkdir -p /var/www/vhosts/localhost/html/ && echo "<?php phpinfo();" > /var/www/vhosts/localhost/html/index.php && service lsws restart'
89+
until [[ "`docker inspect -f {{.State.Running}} ${ID}`" == "true" ]]; do
90+
sleep 0.1
91+
done
92+
echo -e '...testing HTTP response from within Docker contianer...'
8793
HTTP=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -IkL -w "%{http_code}" http://localhost')
94+
echo -e '...testing HTTPS response from within Docker contianer...'
8895
HTTPS=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -Ik -w "%{http_code}" https://localhost')
96+
echo -e '...terminating Docker contianer...'
8997
docker kill ${ID} &>/dev/null
98+
echo -e '...removing Docker container...'
9099
docker rm ${ID} &>/dev/null
100+
echo -e '...validating results...'
91101
if [[ "${HTTP}" != "200" || "${HTTPS}" != "200" ]]; then
92102
echo -e '[\u2718] Test failed!'
93103
echo "http://localhost returned ${HTTP}"
@@ -97,13 +107,23 @@ jobs:
97107
else
98108
echo -e '[\u2714] Tests passed!'
99109
fi
100-
echo -e 'Testing OLS Admin Control Panel...'
110+
echo -e "::endgroup::"
111+
echo -e "::group::Testing OLS Admin Control Panel"
112+
echo -e '...starting Docker image...'
101113
ID=$(docker run -d ${IMAGE})
102-
sleep 5s
114+
echo -e '...waiting for Docker image to startup...'
115+
until [[ "`docker inspect -f {{.State.Running}} ${ID}`" == "true" ]]; do
116+
sleep 0.1
117+
done
118+
echo -e '...testing HTTP response of Admin Control Panel from within Docker contianer...'
103119
HTTP=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -IkL -w "%{http_code}" "http://localhost:7080/login.php?timedout=1#view/confMgr.php?m=tp_docker&p=ext"')
120+
echo -e '...testing HTTPS response of Admin Control Panel from within Docker contianer...'
104121
HTTPS=$(docker exec -i ${ID} su -c 'curl -s -o /dev/null -Ik -w "%{http_code}" "https://localhost:7080/login.php?timedout=1#view/confMgr.php?m=tp_docker&p=ext"')
122+
echo -e '...terminating Docker contianer...'
105123
docker kill ${ID} &>/dev/null
124+
echo -e '...removing Docker container...'
106125
docker rm ${ID} &>/dev/null
126+
echo -e '...validating results...'
107127
if [[ "${HTTP}" != "200" || "${HTTPS}" != "200" ]]; then
108128
echo -e '[\u2718] Test failed!'
109129
echo "http://localhost returned ${HTTP}"
@@ -115,4 +135,5 @@ jobs:
115135
fi
116136
echo -e 'Cleaning Up Test Image...'
117137
docker rmi ${IMAGE} &>/dev/null
138+
echo -e "::endgroup::"
118139

README.md

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,40 @@ Install a lightweight OpenLiteSpeed container using the Latest version in Debian
66

77
## Supported tags
88

9-
- `1.8.3-lsphp83-node20`, `1.8.3-lsphp83`, `1.8-lsphp83-node20`, `1.8-lsphp83`, `1-lsphp83-node20`, `1-lsphp83`, `lsphp83-node20`, `lsphp83`
10-
- `1.8.3-lsphp83-node18`, `1.8-lsphp83-node18`, `1-lsphp83-node18`, `lsphp83-node18`
11-
- `1.8.3-lsphp83-node16`, `1.8-lsphp83-node16`, `1-lsphp83-node16`, `lsphp83-node16`
12-
- `1.8.3-lsphp82-node20`, `1.8.3-lsphp82`, `1.8-lsphp82-node20`, `1.8-lsphp82`, `1-lsphp82-node20`, `1-lsphp82`, `lsphp82-node20`, `lsphp82`
13-
- `1.8.3-lsphp82-node18`, `1.8-lsphp82-node18`, `1-lsphp82-node18`, `lsphp82-node18`
14-
- `1.8.3-lsphp82-node16`, `1.8-lsphp82-node16`, `1-lsphp82-node16`, `lsphp82-node16`
15-
- `1.8.3-lsphp81-node20`, `1.8.3-lsphp81`, `1.8-lsphp81-node20`, `1.8-lsphp81`, `1-lsphp81-node20`, `1-lsphp81`, `lsphp81-node20`, `lsphp81`
16-
- `1.8.3-lsphp81-node18`, `1.8-lsphp81-node18`, `1-lsphp81-node18`, `lsphp81-node18`
17-
- `1.8.3-lsphp81-node16`, `1.8-lsphp81-node16`, `1-lsphp81-node16`, `lsphp81-node16`
18-
- `1.8.3-lsphp80-node20`, `1.8.3-lsphp80`, `1.8-lsphp80-node20`, `1.8-lsphp80`, `1-lsphp80-node20`, `1-lsphp80`, `lsphp80-node20`, `lsphp80`
19-
- `1.8.3-lsphp80-node18`, `1.8-lsphp80-node18`, `1-lsphp80-node18`, `lsphp80-node18`
20-
- `1.8.3-lsphp80-node16`, `1.8-lsphp80-node16`, `1-lsphp80-node16`, `lsphp80-node16`
9+
- `1.8.5-lsphp84-node22`, `1.8.5-lsphp84`, `1.8-lsphp84-node22`, `1.8-lsphp84`, `1-lsphp84-node22`, `1-lsphp84`, `lsphp84-node22`, `lsphp84`
10+
- `1.8.5-lsphp84-node20`, `1.8-lsphp84-node20`, `1-lsphp84-node20`, `lsphp84-node20`
11+
- `1.8.5-lsphp84-node18`, `1.8-lsphp84-node18`, `1-lsphp84-node18`, `lsphp84-node18`
12+
- `1.8.5-lsphp83-node22`, `1.8.5-lsphp83`, `1.8-lsphp83-node22`, `1.8-lsphp83`, `1-lsphp83-node22`, `1-lsphp83`, `lsphp83-node22`, `lsphp83`
13+
- `1.8.5-lsphp83-node20`, `1.8-lsphp83-node20`, `1-lsphp83-node20`, `lsphp83-node20`
14+
- `1.8.5-lsphp83-node18`, `1.8-lsphp83-node18`, `1-lsphp83-node18`, `lsphp83-node18`
15+
- `1.8.5-lsphp82-node22`, `1.8.5-lsphp82`, `1.8-lsphp82-node22`, `1.8-lsphp82`, `1-lsphp82-node22`, `1-lsphp82`, `lsphp82-node22`, `lsphp82`
16+
- `1.8.5-lsphp82-node20`, `1.8-lsphp82-node20`, `1-lsphp82-node20`, `lsphp82-node20`
17+
- `1.8.5-lsphp82-node18`, `1.8-lsphp82-node18`, `1-lsphp82-node18`, `lsphp82-node18`
2118

2219
## Legacy Tags
2320

21+
- `1.8.3-lsphp84-node22`
22+
- `1.8.3-lsphp84-node20`
23+
- `1.8.3-lsphp84-node18`
24+
- `1.8.3-lsphp84-node16`
25+
- `1.8.3-lsphp83-node22`
26+
- `1.8.3-lsphp83-node20`, `1.8.3-lsphp83`
27+
- `1.8.3-lsphp83-node18`
28+
- `1.8.3-lsphp83-node16`
29+
- `1.8.3-lsphp82-node22`
30+
- `1.8.3-lsphp82-node22`
31+
- `1.8.3-lsphp82-node20`, `1.8.3-lsphp82`
32+
- `1.8.3-lsphp82-node18`
33+
- `1.8.3-lsphp82-node16`
34+
- `1.8.3-lsphp81-node22`
35+
- `1.8.3-lsphp81-node20`, `1.8.3-lsphp81`
36+
- `1.8.3-lsphp81-node18`
37+
- `1.8.3-lsphp81-node16`
38+
- `1.8.3-lsphp80-node22`
39+
- `1.8.3-lsphp80-node20`, `1.8.3-lsphp80`
40+
- `1.8.3-lsphp80-node18`
41+
- `1.8.3-lsphp80-node16`
42+
2443
- `1.7.19-lsphp83-node20`, `1.7.19-lsphp83`, `1.7-lsphp83-node20`, `1.7-lsphp83`
2544
- `1.7.19-lsphp83-node18`, `1.7-lsphp83-node18`
2645
- `1.7.19-lsphp83-node16`, `1.7-lsphp83-node16`

template/Dockerfile

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
1-
ARG OLS_VERSION
2-
ARG PHP_VERSION
3-
ARG PHP_MAJOR_VERSION
4-
ARG PHP_MINOR_VERSION
5-
ARG OLS_ADMIN_PHP_VERSION
6-
ARG OLS_ADMIN_PHP_MAJOR_VERSION
7-
ARG OLS_ADMIN_PHP_MINOR_VERSION
8-
ARG NODE_VERSION
1+
ARG OLS_VERSION="1.8.5"
2+
ARG PHP_VERSION="8.3.30"
3+
ARG PHP_MAJOR_VERSION="8"
4+
ARG PHP_MINOR_VERSION="3"
5+
ARG OLS_ADMIN_PHP_VERSION="8.3.30"
6+
ARG OLS_ADMIN_PHP_MAJOR_VERSION="8"
7+
ARG OLS_ADMIN_PHP_MINOR_VERSION="3"
8+
ARG NODE_VERSION="22"
99

1010
FROM wordpress:cli-php${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} AS wp-cli
1111

12-
ARG OLS_VERSION
13-
ARG PHP_VERSION
14-
ARG PHP_MAJOR_VERSION
15-
ARG PHP_MINOR_VERSION
16-
ARG OLS_ADMIN_PHP_VERSION
17-
ARG OLS_ADMIN_PHP_MAJOR_VERSION
18-
ARG OLS_ADMIN_PHP_MINOR_VERSION
19-
ARG NODE_VERSION
12+
ARG OLS_VERSION="1.8.5"
13+
ARG PHP_VERSION="8.3.30"
14+
ARG PHP_MAJOR_VERSION="8"
15+
ARG PHP_MINOR_VERSION="3"
16+
ARG OLS_ADMIN_PHP_VERSION="8.3.30"
17+
ARG OLS_ADMIN_PHP_MAJOR_VERSION="8"
18+
ARG OLS_ADMIN_PHP_MINOR_VERSION="3"
19+
ARG NODE_VERSION="22"
2020

21-
FROM litespeedtech/openlitespeed:${OLS_VERSION}-lsphp${PHP_MAJOR_VERSION}1 AS ols
21+
FROM litespeedtech/openlitespeed:${OLS_VERSION}-lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION} AS ols
2222

23-
FROM debian:11-slim
23+
FROM debian:bookworm-slim
2424

25+
LABEL org.opencontainers.image.authors="Tim Nolte <support@ndigitals.com>"
2526
LABEL org.opencontainers.image.url=https://github.com/ndigitals/ols-dockerfiles/pkgs/container/openlitespeed
27+
LABEL org.opencontainers.image.description="ARM64 builds of the OpenLiteSpeed web server with supported PHP & NodeJS versions"
2628
LABEL org.opencontainers.image.documentation=https://github.com/ndigitals/ols-dockerfiles/wiki
2729
LABEL org.opencontainers.image.source=https://github.com/ndigitals/ols-dockerfiles
2830
LABEL org.opencontainers.image.vendor="Nolte Digital Solutions"
2931
LABEL org.opencontainers.image.licenses=MIT
3032

31-
ARG OLS_VERSION
32-
ARG PHP_VERSION
33-
ARG PHP_MAJOR_VERSION
34-
ARG PHP_MINOR_VERSION
35-
ARG OLS_ADMIN_PHP_VERSION
36-
ARG OLS_ADMIN_PHP_MAJOR_VERSION
37-
ARG OLS_ADMIN_PHP_MINOR_VERSION
38-
ARG NODE_VERSION
33+
ARG OLS_VERSION="1.8.5"
34+
ARG PHP_VERSION="8.3.30"
35+
ARG PHP_MAJOR_VERSION="8"
36+
ARG PHP_MINOR_VERSION="3"
37+
ARG OLS_ADMIN_PHP_VERSION="8.3.30"
38+
ARG OLS_ADMIN_PHP_MAJOR_VERSION="8"
39+
ARG OLS_ADMIN_PHP_MINOR_VERSION="3"
40+
ARG NODE_VERSION="22"
3941

4042
ENV OLS_VERSION=${OLS_VERSION}
4143
ENV PHP_VERSION=${PHP_VERSION}
@@ -69,7 +71,7 @@ RUN /build/secure-base.sh && \
6971

7072
RUN mkdir -p /usr/local/lsws/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/etc/php/${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}/
7173

72-
COPY --from=ols ["/usr/local/lsws/lsphp${PHP_MAJOR_VERSION}1/etc/php/${PHP_MAJOR_VERSION}.1/", "/usr/local/lsws/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/etc/php/${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}/"]
74+
COPY --from=ols ["/usr/local/lsws/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/etc/php/${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}/", "/usr/local/lsws/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/etc/php/${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}/"]
7375
COPY --from=wp-cli ["/usr/local/bin/wp", "/usr/bin/wp"]
7476

7577
EXPOSE 7080

template/config-build-env.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ PACKAGES_INSTALLED_LOG="/tmp/packages.lst"
1515
SETUP_PACKAGES="ca-certificates cron tzdata pkg-config git curl wget"
1616

1717
## Run time dependencies ##
18-
RUN_PACKAGES="ca-certificates cron tzdata pkg-config git curl wget openssl mariadb-client libgssapi-krb5-2 libkrb5-3 libexpat1 libxml2 libargon2-1 libenchant-2-2 libpng16-16 libwebp6 libjpeg62-turbo libxpm4 libfreetype6 libonig5 libsodium23 libxslt1.1 libzip4 libzstd1 liblz4-1 libcurl4 imagemagick libc-client2007e libmemcached11 libdbd-freetds freetds-bin procps libatomic1 net-tools less libjpeg-turbo-progs optipng gifsicle zip unzip libyajl2 libpcre2-posix2 libpcre++0v5 liblmdb0 libgeoip1 ruby-full gnupg2 nodejs yarn mmdb-bin lua-mmdb brotli libbrotli1 liblua5.2-0 lua5.2 ssdeep libldap-2.4-2 libldap-common libssh2-1 libsasl2-2 libsasl2-modules libsasl2-modules-db libnghttp2-14 libpsl5 librtmp1 publicsuffix webp"
18+
RUN_PACKAGES="ca-certificates cron tzdata pkg-config git curl wget openssl mariadb-client libgssapi-krb5-2 libkrb5-3 libexpat1 libxml2 libargon2-1 libenchant-2-2 libpng16-16 libwebp7 libjpeg62-turbo libxpm4 libfreetype6 libonig5 libsodium23 libxslt1.1 libzip4 libzstd1 liblz4-1 libcurl4 imagemagick libc-client2007e libmemcached11 libdbd-freetds freetds-bin procps libatomic1 net-tools less libjpeg-turbo-progs optipng gifsicle zip unzip libyajl2 libpcre2-posix3 libpcre3 libpcrecpp0v5 liblmdb0 libgeoip1 ruby-full gnupg2 nodejs yarn mmdb-bin lua-mmdb brotli libbrotli1 liblua5.2-0 lua5.2 ssdeep libldap-2.5-0 libldap-common libssh2-1 libsasl2-2 libsasl2-modules libsasl2-modules-db libnghttp2-14 libpsl5 librtmp1 publicsuffix webp"
1919

2020
## Build time dependencies ##
2121

2222
# Core list from docs
2323
BUILD_PACKAGES="build-essential"
2424

2525
# OLS build required packages
26-
BUILD_PACKAGES="$BUILD_PACKAGES cmake g++ autoconf automake libtool flex bison gdb libgeoip-dev liblmdb-dev libyajl-dev libpcre++-dev libmaxminddb-dev liblualib50-dev liblua50-dev libudns-dev libbrotli-dev libssl-dev zlib1g-dev liblua5.2-dev libcurl4-openssl-dev libexpat1-dev libcurlpp-dev libcurlpp0 libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev"
26+
BUILD_PACKAGES="$BUILD_PACKAGES cmake g++ autoconf automake libtool flex bison gdb libgeoip-dev liblmdb-dev libyajl-dev libpcre3-dev libmaxminddb-dev libudns-dev libbrotli-dev libssl-dev zlib1g-dev liblua5.2-dev libcurl4-openssl-dev libexpat1-dev libcurlpp-dev libcurlpp0 libidn11-dev libkrb5-dev libldap2-dev librtmp-dev libssh2-1-dev"
2727

2828
# PHP building required packages
29-
BUILD_PACKAGES="$BUILD_PACKAGES libdb5.3-dev krb5-multidev re2c libxml2-dev libbz2-dev libjpeg-dev libfreetype6-dev libgmp3-dev libpng-dev libxpm-dev libc-client2007e-dev libenchant-2-dev libsasl2-dev libc-client2007e-dev libldb-dev libmcrypt-dev libmhash-dev freetds-dev zlib1g-dev libpq-dev libmariadb-dev-compat libmariadb-dev libncurses5-dev libpcre2-dev libpcre3-dev unixodbc-dev libsqlite3-dev libaspell-dev libreadline6-dev librecode-dev libsnmp-dev libtidy-dev libxslt-dev libonig-dev libzip-dev libwebp-dev freetds-dev libpspell-dev libedit-dev libsodium-dev libargon2-dev libvarnishapi-dev libmagickwand-dev libmagickcore-dev libmemcached-dev libzstd-dev liblz4-dev libyaml-dev libffi-dev"
29+
BUILD_PACKAGES="$BUILD_PACKAGES libdb5.3-dev krb5-multidev re2c libxml2-dev libbz2-dev libjpeg-dev libjpeg62-turbo-dev libfreetype6-dev libgmp3-dev libpng-dev libxpm-dev libc-client2007e-dev libenchant-2-dev libsasl2-dev libc-client2007e-dev libldb-dev libmcrypt-dev libmhash-dev freetds-dev zlib1g-dev libpq-dev libmariadb-dev-compat libmariadb-dev libncurses5-dev libpcre2-dev libpcre3-dev unixodbc-dev libsqlite3-dev libaspell-dev libreadline6-dev librecode-dev libsnmp-dev libtidy-dev libxslt-dev libonig-dev libzip-dev libwebp-dev freetds-dev libpspell-dev libedit-dev libsodium-dev libargon2-dev libvarnishapi-dev libmagickwand-dev libmagickcore-dev libmemcached-dev libzstd-dev liblz4-dev libyaml-dev libffi-dev"
3030

3131
# apt-get remove --allow-remove-essential enters an infinite loop of
3232
# pam errors with this package

0 commit comments

Comments
 (0)