Skip to content

Commit 6c52f1f

Browse files
authored
Merge pull request #149 from ndigitals/develop
2024-01-20 Feature & Fix Release
2 parents e0379d3 + 81397e8 commit 6c52f1f

File tree

6 files changed

+109
-13
lines changed

6 files changed

+109
-13
lines changed

.github/workflows/docker.yml

Lines changed: 74 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
OLS_VERSION: 1.7.19
1111
PHP_STABLE_VERSION: '8.3.2'
12+
NODE_STABLE_VERSION: '20'
1213
REGISTRY: ghcr.io
1314

1415
jobs:
@@ -22,6 +23,10 @@ jobs:
2223
- '8.1.27'
2324
- '8.2.15'
2425
- '8.3.2'
26+
NODE_VERSION:
27+
- '16'
28+
- '18'
29+
- '20'
2530

2631
steps:
2732
- name: Checkout
@@ -63,7 +68,9 @@ jobs:
6368
# https://github.com/marketplace/actions/build-and-push-docker-images
6469
- name: Build and Push Docker Image
6570
uses: docker/build-push-action@v5
66-
if: matrix.PHP_VERSION != env.PHP_STABLE_VERSION
71+
if: |
72+
matrix.PHP_VERSION != env.PHP_STABLE_VERSION
73+
&& matrix.NODE_VERSION != env.NODE_STABLE_VERSION
6774
with:
6875
context: template
6976
platforms: linux/arm64
@@ -73,20 +80,79 @@ jobs:
7380
PHP_VERSION=${{ matrix.PHP_VERSION }}
7481
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
7582
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
83+
NODE_VERSION=${{ matrix.NODE_VERSION }}
7684
push: true
7785
tags: |
86+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
87+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}.${{ steps.ols-version.outputs._1 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
88+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
89+
${{ env.REGISTRY }}/ndigitals/openlitespeed:lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
90+
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}
91+
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
92+
cache-to: type=inline
93+
94+
# https://github.com/marketplace/actions/build-and-push-docker-images
95+
- name: Build and Push Docker Image - latest PHP, non-latest Node
96+
uses: docker/build-push-action@v5
97+
if: |
98+
matrix.PHP_VERSION == env.PHP_STABLE_VERSION
99+
&& matrix.NODE_VERSION != env.NODE_STABLE_VERSION
100+
with:
101+
context: template
102+
platforms: linux/arm64
103+
provenance: false
104+
build-args: |
105+
OLS_VERSION=${{ env.OLS_VERSION }}
106+
PHP_VERSION=${{ matrix.PHP_VERSION }}
107+
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
108+
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
109+
NODE_VERSION=${{ matrix.NODE_VERSION }}
110+
push: true
111+
tags: |
112+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
113+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}.${{ steps.ols-version.outputs._1 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
114+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
115+
${{ env.REGISTRY }}/ndigitals/openlitespeed:lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
116+
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}
117+
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
118+
cache-to: type=inline
119+
120+
# https://github.com/marketplace/actions/build-and-push-docker-images
121+
- name: Build and Push Docker Image - latest Node, non-latest PHP
122+
uses: docker/build-push-action@v5
123+
if: |
124+
matrix.PHP_VERSION != env.PHP_STABLE_VERSION
125+
&& matrix.NODE_VERSION == env.NODE_STABLE_VERSION
126+
with:
127+
context: template
128+
platforms: linux/arm64
129+
provenance: false
130+
build-args: |
131+
OLS_VERSION=${{ env.OLS_VERSION }}
132+
PHP_VERSION=${{ matrix.PHP_VERSION }}
133+
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
134+
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
135+
NODE_VERSION=${{ matrix.NODE_VERSION }}
136+
push: true
137+
tags: |
138+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
78139
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
140+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}.${{ steps.ols-version.outputs._1 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
79141
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}.${{ steps.ols-version.outputs._1 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
142+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
80143
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
144+
${{ env.REGISTRY }}/ndigitals/openlitespeed:lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
81145
${{ env.REGISTRY }}/ndigitals/openlitespeed:lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
82146
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}
83147
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
84148
cache-to: type=inline
85149

86150
# https://github.com/marketplace/actions/build-and-push-docker-images
87-
- name: Build and Push Docker Image - latest
151+
- name: Build and Push Docker Image - latest PHP & Node
88152
uses: docker/build-push-action@v5
89-
if: matrix.PHP_VERSION == env.PHP_STABLE_VERSION
153+
if: |
154+
matrix.PHP_VERSION == env.PHP_STABLE_VERSION
155+
&& matrix.NODE_VERSION == env.NODE_STABLE_VERSION
90156
with:
91157
context: template
92158
platforms: linux/arm64
@@ -96,11 +162,16 @@ jobs:
96162
PHP_VERSION=${{ matrix.PHP_VERSION }}
97163
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
98164
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
165+
NODE_VERSION=${{ matrix.NODE_VERSION }}
99166
push: true
100167
tags: |
168+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
101169
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
170+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}.${{ steps.ols-version.outputs._1 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
102171
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}.${{ steps.ols-version.outputs._1 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
172+
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
103173
${{ env.REGISTRY }}/ndigitals/openlitespeed:${{ steps.ols-version.outputs._0 }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
174+
${{ env.REGISTRY }}/ndigitals/openlitespeed:lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
104175
${{ env.REGISTRY }}/ndigitals/openlitespeed:lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
105176
${{ env.REGISTRY }}/ndigitals/openlitespeed:latest
106177
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}

.github/workflows/test-builds.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ on:
99
env:
1010
OLS_VERSION: 1.7.19
1111
PHP_STABLE_VERSION: '8.3.2'
12+
NODE_STABLE_VERSION: '20'
1213
REGISTRY: ghcr.io
1314

1415
jobs:
@@ -22,6 +23,10 @@ jobs:
2223
- '8.1.27'
2324
- '8.2.15'
2425
- '8.3.2'
26+
NODE_VERSION:
27+
- '16'
28+
- '18'
29+
- '20'
2530

2631
steps:
2732
- name: Checkout
@@ -63,16 +68,17 @@ jobs:
6368
PHP_VERSION=${{ matrix.PHP_VERSION }}
6469
PHP_MAJOR_VERSION=${{ steps.php-version.outputs._0 }}
6570
PHP_MINOR_VERSION=${{ steps.php-version.outputs._1 }}
71+
NODE_VERSION=${{ matrix.NODE_VERSION }}
6672
load: true
6773
push: false
68-
tags: openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
74+
tags: openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
6975
no-cache: ${{ github.event_name == 'workflow_dispatch' && true || false }}
7076
cache-from: type=registry,ref=${{ env.REGISTRY }}/ndigitals/openlitespeed
7177
cache-to: type=inline
7278

7379
- name: Test Docker Image
7480
run: |
75-
IMAGE=openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}
81+
IMAGE=openlitespeed:${{ env.OLS_VERSION }}-lsphp${{ steps.php-version.outputs._0 }}${{ steps.php-version.outputs._1 }}-node${{ matrix.NODE_VERSION }}
7682
ID=$(docker run -d ${IMAGE})
7783
sleep 5s
7884
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'

README.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,19 @@ Install a lightweight OpenLiteSpeed container using the Stable version in Debian
66

77
## Supported tags
88

9-
- `1.7.18-lsphp83`, `1.7-lsphp83`, `1-lsphp83`, `lsphp83`
10-
- `1.7.18-lsphp82`, `1.7-lsphp82`, `1-lsphp82`, `lsphp82`
11-
- `1.7.18-lsphp81`, `1.7-lsphp81`, `1-lsphp81`, `lsphp81`
12-
- `1.7.18-lsphp80`, `1.7-lsphp80`, `1-lsphp80`, `lsphp80`
9+
- `1.7.19-lsphp83-node20`, `1.7.19-lsphp83`, `1.7-lsphp83-node20`, `1.7-lsphp83`, `1-lsphp83-node20`, `1-lsphp83`, `lsphp83-node20`, `lsphp83`
10+
- `1.7.19-lsphp83-node18`, `1.7-lsphp83-node18`, `1-lsphp83-node18`, `lsphp83-node18`
11+
- `1.7.19-lsphp83-node16`, `1.7-lsphp83-node16`, `1-lsphp83-node16`, `lsphp83-node16`
12+
- `1.7.19-lsphp82-node20`, `1.7.19-lsphp82`, `1.7-lsphp82-node20`, `1.7-lsphp82`, `1-lsphp82-node20`, `1-lsphp82`, `lsphp82-node20`, `lsphp82`
13+
- `1.7.19-lsphp82-node18`, `1.7-lsphp82-node18`, `1-lsphp82-node18`, `lsphp82-node18`
14+
- `1.7.19-lsphp82-node16`, `1.7-lsphp82-node16`, `1-lsphp82-node16`, `lsphp82-node16`
15+
- `1.7.19-lsphp81-node20`, `1.7.19-lsphp81`, `1.7-lsphp81-node20`, `1.7-lsphp81`, `1-lsphp81-node20`, `1-lsphp81`, `lsphp81-node20`, `lsphp81`
16+
- `1.7.19-lsphp81-node18`, `1.7-lsphp81-node18`, `1-lsphp81-node18`, `lsphp81-node18`
17+
- `1.7.19-lsphp81-node16`, `1.7-lsphp81-node16`, `1-lsphp81-node16`, `lsphp81-node16`
18+
- `1.7.19-lsphp80-node20`, `1.7.19-lsphp80`, `1.7-lsphp80-node20`, `1.7-lsphp80`, `1-lsphp80-node20`, `1-lsphp80`, `lsphp80-node20`, `lsphp80`
19+
- `1.7.19-lsphp80-node18`, `1.7-lsphp80-node18`, `1-lsphp80-node18`, `lsphp80-node18`
20+
- `1.7.19-lsphp80-node16`, `1.7-lsphp80-node16`, `1-lsphp80-node16`, `lsphp80-node16`
21+
- `1.7.18-lsphp83`, `1.7.18-lsphp82`, `1.7.18-lsphp81`, `1.7.18-lsphp80`
1322
- `1.7.17-lsphp82`, `1.7.17-lsphp81`, `1.7.17-lsphp80`
1423
- `1.7.16-lsphp82`, `1.7.16-lsphp81`, `1.7.16-lsphp80`
1524

@@ -79,6 +88,12 @@ Feel free to substitute the "openlitespeed" to the "Container_ID" if you did not
7988
docker stop openlitespeed
8089
```
8190

91+
## NodeJS Support
92+
93+
This image includes NodeJS in order to run NodeJS apps. Choose a tag that includes the version of NodeJS needed.
94+
95+
See official documentation for more details on running NodeJS under OpenLiteSpeed. https://openlitespeed.org/kb/running-node-js-apps-with-openlitespeed/
96+
8297
## Support & Feedback
8398

8499
If you still have a question after using OpenLiteSpeed Docker, you have a few options.

template/Dockerfile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@ ARG OLS_VERSION
22
ARG PHP_VERSION
33
ARG PHP_MAJOR_VERSION
44
ARG PHP_MINOR_VERSION
5+
ARG NODE_VERSION
56

67
FROM wordpress:cli-php${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} AS wp-cli
78

89
ARG OLS_VERSION
910
ARG PHP_VERSION
1011
ARG PHP_MAJOR_VERSION
1112
ARG PHP_MINOR_VERSION
13+
ARG NODE_VERSION
1214

1315
FROM litespeedtech/openlitespeed:${OLS_VERSION}-lsphp${PHP_MAJOR_VERSION}0 AS ols
1416

@@ -24,6 +26,7 @@ ARG OLS_VERSION
2426
ARG PHP_VERSION
2527
ARG PHP_MAJOR_VERSION
2628
ARG PHP_MINOR_VERSION
29+
ARG NODE_VERSION
2730

2831
ENV OLS_VERSION=${OLS_VERSION}
2932
ENV PHP_VERSION=${PHP_VERSION}
@@ -32,6 +35,7 @@ ENV PHP_MINOR_VERSION=${PHP_MINOR_VERSION}
3235
ENV OLS_ADMIN_PHP_VERSION=7.4.33
3336
ENV OLS_ADMIN_PHP_MAJOR_VERSION=7
3437
ENV OLS_ADMIN_PHP_MINOR_VERSION=4
38+
ENV NODE_VERSION=${NODE_VERSION}
3539

3640
COPY *.sh /build/
3741

@@ -57,7 +61,7 @@ RUN /build/secure-base.sh && \
5761
RUN mkdir -p /usr/local/lsws/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/etc/php/${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}/
5862

5963
COPY --from=ols ["/usr/local/lsws/lsphp${PHP_MAJOR_VERSION}0/etc/php/${PHP_MAJOR_VERSION}.0/", "/usr/local/lsws/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/etc/php/${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION}/"]
60-
COPY --from=wp-cli ["/usr/local/bin/wp", "/usr/local/bin/wp"]
64+
COPY --from=wp-cli ["/usr/local/bin/wp", "/usr/bin/wp"]
6165

6266
EXPOSE 7080
6367
ENV PATH="/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin"

template/config-php.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cd /build || exit
66

77
ln -sf $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/php${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} /usr/bin/php
88
ln -sf $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/php${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/php
9-
ln -sf $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/lsphp${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} /usr/local/bin/lsphp
9+
ln -sf $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/lsphp${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} /usr/bin/lsphp
1010
ln -sf $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/lsphp${PHP_MAJOR_VERSION}.${PHP_MINOR_VERSION} $LSWS_HOME/lsphp${PHP_MAJOR_VERSION}${PHP_MINOR_VERSION}/bin/lsphp
1111

1212
# Install missing PECL PHP modules.

template/prepare-runtime.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
apt-get update -y
66
apt-get install $MINIMAL_APT_GET_ARGS $SETUP_PACKAGES
77

8-
# Prepare to install Node 16.
9-
curl -sL https://deb.nodesource.com/setup_16.x | bash -
8+
# Prepare to install Node.
9+
curl -sL https://deb.nodesource.com/setup_$NODE_VERSION.x | bash -
1010

1111
# Prepare to install Yarn.
1212
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

0 commit comments

Comments
 (0)