Skip to content

Commit 3449679

Browse files
committed
add build for 8.4
1 parent e55a177 commit 3449679

4 files changed

Lines changed: 193 additions & 3 deletions

File tree

.circleci/config.yml

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,35 @@
11
version: 2.1
2+
3+
triggers:
4+
- schedule:
5+
description: "Builds once a day during the work week (11AM EST)"
6+
cron: "0 16 * * MON,WED,FRI"
7+
filters:
8+
branches:
9+
only:
10+
- main
11+
212
workflows:
313
version: 2
414
build:
515
jobs:
616
# Tag this build process in Docker Hub, Only apply to development, master, production branches
17+
- build84:
18+
context:
19+
- "Docker Hub"
20+
filters:
21+
branches:
22+
only:
23+
- main
24+
# Tag this build process in Docker Hub, Only apply to development, master, production branches
25+
- build84headless:
26+
context:
27+
- "Docker Hub"
28+
filters:
29+
branches:
30+
only:
31+
- main
32+
# Tag this build process in Docker Hub, Only apply to development, master, production branches
733
- build83:
834
context:
935
- "Docker Hub"
@@ -60,14 +86,66 @@ workflows:
6086
only:
6187
- main
6288
jobs:
89+
90+
build84:
91+
resource_class: small
92+
docker:
93+
- image: docker:20-git
94+
environment:
95+
# Define the Docker Hub Path to Push the Image
96+
IMAGE_PATH: "nhalstead00/php-apache-core"
97+
TAG_PREFIX: "8.4-"
98+
steps:
99+
- checkout
100+
- setup_remote_docker:
101+
docker_layer_caching: false
102+
- run:
103+
name: Docker Version
104+
command: docker -v
105+
- run:
106+
name: RUNC Version
107+
command: runc -v || true
108+
- run:
109+
name: Install Bash
110+
command: apk update && apk add bash
111+
- run:
112+
name: Push Docker Image to Docker Hub Registry
113+
command: |
114+
bash ~/project/.circleci/registry_push.sh 8.4/Dockerfile
115+
build84headless:
116+
resource_class: small
117+
docker:
118+
- image: docker:20-git
119+
environment:
120+
# Define the Docker Hub Path to Push the Image
121+
IMAGE_PATH: "nhalstead00/php-apache-core"
122+
TAG_PREFIX: "8.4-headless-"
123+
steps:
124+
- checkout
125+
- setup_remote_docker:
126+
docker_layer_caching: false
127+
- run:
128+
name: Docker Version
129+
command: docker -v
130+
- run:
131+
name: RUNC Version
132+
command: runc -v || true
133+
- run:
134+
name: Install Bash
135+
command: apk update && apk add bash
136+
- run:
137+
name: Push Docker Image to Docker Hub Registry
138+
command: |
139+
bash ~/project/.circleci/registry_push.sh 8.4/Dockerfile-headless
140+
63141
build83:
64142
resource_class: small
65143
docker:
66144
- image: docker:20-git
67145
environment:
68146
# Define the Docker Hub Path to Push the Image
69147
IMAGE_PATH: "nhalstead00/php-apache-core"
70-
TAG_PREFIX: "8.1-"
148+
TAG_PREFIX: "8.3-"
71149
steps:
72150
- checkout
73151
- setup_remote_docker:
@@ -92,7 +170,7 @@ jobs:
92170
environment:
93171
# Define the Docker Hub Path to Push the Image
94172
IMAGE_PATH: "nhalstead00/php-apache-core"
95-
TAG_PREFIX: "8.1-headless-"
173+
TAG_PREFIX: "8.3-headless-"
96174
steps:
97175
- checkout
98176
- setup_remote_docker:
@@ -161,6 +239,7 @@ jobs:
161239
name: Push Docker Image to Docker Hub Registry
162240
command: |
163241
bash ~/project/.circleci/registry_push.sh 8.1/Dockerfile-headless
242+
164243
build80:
165244
resource_class: small
166245
docker:
@@ -211,6 +290,7 @@ jobs:
211290
name: Push Docker Image to Docker Hub Registry
212291
command: |
213292
bash ~/project/.circleci/registry_push.sh 8.0/Dockerfile-headless
293+
214294
build74:
215295
resource_class: small
216296
docker:

.github/workflows/build-images.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828

2929
strategy:
3030
matrix:
31-
php_version: ['8.3', '8.1', '8.0', '7.4']
31+
php_version: ['8.4', '8.3', '8.1', '8.0', '7.4']
3232
variant: ['apache', 'apache-chrome']
3333

3434
steps:

8.4/Dockerfile

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Normal Operations for setup of Apache and ENV Vars
2+
FROM --platform=linux/amd64 php:8.4-apache
3+
4+
# Configure OPCache
5+
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=0
6+
ENV PHP_OPCACHE_MAX_ACCELERATED_FILES=10000
7+
ENV PHP_OPCACHE_MEMORY_CONSUMPTION=192
8+
ENV PHP_OPCACHE_MAX_WASTED_PERCENTAGE=10
9+
10+
COPY common/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
11+
12+
RUN apt-get update -y; \
13+
apt-get install -y openssl zip unzip git wget iputils-ping libpng-dev libzip-dev libmagickwand-dev --no-install-recommends; \
14+
docker-php-ext-install gd zip pdo mysqli pdo_mysql opcache; \
15+
pecl install redis; \
16+
pecl install imagick; \
17+
docker-php-ext-enable redis; \
18+
docker-php-ext-enable imagick; \
19+
apt autoremove -y; \
20+
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer; \
21+
rm -rf /var/lib/apt/lists/*;
22+
23+
# Configure Apache
24+
# - Enables Modrerite
25+
# - Enables RemoteIP (Used for Load Balancer and RProxies)
26+
# - Allow htaccess overrides
27+
# - Changes Listen port to 8181
28+
# - Hides Apache Server Version Information
29+
# - Load Module RemoteIP
30+
# - Reconfigure Logging to include X-Forward-For Header
31+
RUN a2enmod rewrite
32+
RUN a2enmod remoteip
33+
RUN touch /etc/apache2/conf-available/remoteip.conf
34+
RUN ln -s /etc/apache2/conf-available/remoteip.conf /etc/apache2/conf-enabled/remoteip.conf
35+
36+
COPY common/remoteip-env /usr/sbin
37+
COPY common/remoteip-clear /usr/sbin
38+
RUN chmod +x /usr/sbin/remoteip-*
39+
40+
COPY common/opcache-preload /usr/sbin
41+
COPY common/opcache-status /usr/sbin
42+
RUN chmod +x /usr/sbin/opcache-*
43+
44+
RUN sed -ri -e 's!AllowOverride None!AllowOverride All!g' /etc/apache2/apache2.conf
45+
RUN sed -ri -e 's!Listen 80!Listen 8181!g' /etc/apache2/ports.conf
46+
RUN sed -ri -e 's!VirtualHost \*:80!VirtualHost \*:8181!g' /etc/apache2/sites-enabled/000-default.conf
47+
RUN echo "ServerSignature off" >> /etc/apache2/apache2.conf
48+
RUN echo "ServerTokens Prod" >> /etc/apache2/apache2.conf
49+
50+
RUN sed -ri -e 's!#LoadModule remoteip_module!LoadModule remoteip_module!g' /etc/apache2/apache2.conf
51+
RUN sed -ri -e 's/LogFormat .* combined/LogFormat \"%a %{c}a %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\" %I %O\" combined/g' /etc/apache2/apache2.conf
52+
53+
EXPOSE 8181

8.4/Dockerfile-headless

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Normal Operations for setup of Apache and ENV Vars
2+
FROM --platform=linux/amd64 php:8.4-apache
3+
4+
# Configure OPCache
5+
ENV PHP_OPCACHE_VALIDATE_TIMESTAMPS=0
6+
ENV PHP_OPCACHE_MAX_ACCELERATED_FILES=10000
7+
ENV PHP_OPCACHE_MEMORY_CONSUMPTION=192
8+
ENV PHP_OPCACHE_MAX_WASTED_PERCENTAGE=10
9+
10+
COPY common/opcache.ini /usr/local/etc/php/conf.d/opcache.ini
11+
12+
RUN apt-get update -y; \
13+
apt-get install -y openssl zip unzip git wget iputils-ping libpng-dev libzip-dev libmagickwand-dev --no-install-recommends; \
14+
docker-php-ext-install gd zip pdo mysqli pdo_mysql opcache; \
15+
pecl install redis; \
16+
pecl install imagick; \
17+
docker-php-ext-enable redis; \
18+
docker-php-ext-enable imagick; \
19+
apt autoremove -y; \
20+
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer; \
21+
rm -rf /var/lib/apt/lists/*;
22+
23+
24+
# As needed for Chrome to Run
25+
# https://github.com/beganovich/snappdf#downloading-local-chromium
26+
# https://github.com/beganovich/snappdf?tab=readme-ov-file#headless-chrome-doesnt-launch-on-unix
27+
RUN apt-get update -y; \
28+
apt-get install -y ca-certificates fonts-liberation libnss3 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release xdg-utils --no-install-recommends; \
29+
rm -rf /var/lib/apt/lists/*;
30+
31+
# Configure Apache
32+
# - Enables Modrerite
33+
# - Enables RemoteIP (Used for Load Balancer and RProxies)
34+
# - Allow htaccess overrides
35+
# - Changes Listen port to 8181
36+
# - Hides Apache Server Version Information
37+
# - Load Module RemoteIP
38+
# - Reconfigure Logging to include X-Forward-For Header
39+
RUN a2enmod rewrite
40+
RUN a2enmod remoteip
41+
RUN touch /etc/apache2/conf-available/remoteip.conf
42+
RUN ln -s /etc/apache2/conf-available/remoteip.conf /etc/apache2/conf-enabled/remoteip.conf
43+
44+
COPY common/remoteip-env /usr/sbin
45+
COPY common/remoteip-clear /usr/sbin
46+
RUN chmod +x /usr/sbin/remoteip-*
47+
48+
RUN sed -ri -e 's!AllowOverride None!AllowOverride All!g' /etc/apache2/apache2.conf
49+
RUN sed -ri -e 's!Listen 80!Listen 8181!g' /etc/apache2/ports.conf
50+
RUN sed -ri -e 's!VirtualHost \*:80!VirtualHost \*:8181!g' /etc/apache2/sites-enabled/000-default.conf
51+
RUN echo "ServerSignature off" >> /etc/apache2/apache2.conf
52+
RUN echo "ServerTokens Prod" >> /etc/apache2/apache2.conf
53+
54+
RUN sed -ri -e 's!#LoadModule remoteip_module!LoadModule remoteip_module!g' /etc/apache2/apache2.conf
55+
RUN sed -ri -e 's/LogFormat .* combined/LogFormat \"%a %{c}a %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\" %I %O\" combined/g' /etc/apache2/apache2.conf
56+
57+
EXPOSE 8181

0 commit comments

Comments
 (0)