Skip to content
This repository was archived by the owner on Aug 13, 2024. It is now read-only.

Commit a910ec5

Browse files
committed
Add PHP 8.1
1 parent 4791e48 commit a910ec5

File tree

5 files changed

+612
-0
lines changed

5 files changed

+612
-0
lines changed

.github/workflows/ci-8.1.yaml

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: "PHP 8.1 Build"
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
schedule:
8+
- cron: "0 0 * * 1"
9+
10+
11+
jobs:
12+
path-context:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v2
17+
- name: Set up QEMU
18+
uses: docker/setup-qemu-action@v1
19+
- name: Set up Docker Buildx
20+
uses: docker/setup-buildx-action@v1
21+
- name: Login to DockerHub
22+
uses: docker/login-action@v1
23+
with:
24+
username: ${{ secrets.DOCKERHUB_USERNAME }}
25+
password: ${{ secrets.DOCKERHUB_TOKEN }}
26+
- name: Build and push PHP 8.1 image
27+
uses: docker/build-push-action@v2
28+
with:
29+
context: ./php8.1
30+
file: ./php8.0/Dockerfile
31+
push: true
32+
tags: |
33+
repox/laravel-dev-php:latest
34+
repox/laravel-dev-php:8.1

php8.1/Dockerfile

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
FROM ubuntu:20.04
2+
3+
MAINTAINER Dan Storm
4+
5+
ENV TZ=Europe/Berlin
6+
ENV LANG=en_US.UTF-8
7+
ENV LANGUAGE=en_US:en
8+
ENV LC_ALL=en_US.UTF-8
9+
ENV DEBIAN_FRONTEND=noninteractive
10+
11+
RUN apt-get clean && apt-get update && apt-get install -y locales
12+
RUN locale-gen en_US.UTF-8
13+
14+
RUN apt-get update \
15+
&& apt-get install -y curl zip unzip git software-properties-common \
16+
&& add-apt-repository -y ppa:ondrej/php \
17+
&& apt-get update \
18+
&& apt-get install -y php8.1-fpm php8.1-cli php8.1-gd php8.1-mysql php8.1-intl php8.1-bcmath php8.1-sqlite php8.1-xdebug \
19+
php8.1-pgsql php8.1-imap php-memcached php8.1-mbstring php8.1-xml php8.1-curl php8.1-redis php8.1-soap php8.1-mailparse \
20+
&& php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
21+
&& mkdir /run/php \
22+
&& apt-get remove -y --purge software-properties-common \
23+
&& apt-get clean \
24+
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
25+
26+
ADD php-fpm.conf /etc/php/8.1/fpm/php-fpm.conf
27+
ADD www.conf /etc/php/8.1/fpm/pool.d/www.conf
28+
ADD php.ini /etc/php/8.1/fpm/php.ini
29+
30+
EXPOSE 9000
31+
CMD ["php-fpm8.1"]

php8.1/php-fpm.conf

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
;;;;;;;;;;;;;;;;;;;;;
2+
; FPM Configuration ;
3+
;;;;;;;;;;;;;;;;;;;;;
4+
5+
; All relative paths in this configuration file are relative to PHP's install
6+
; prefix (/usr). This prefix can be dynamically changed by using the
7+
; '-p' argument from the command line.
8+
9+
;;;;;;;;;;;;;;;;;;
10+
; Global Options ;
11+
;;;;;;;;;;;;;;;;;;
12+
13+
[global]
14+
; Pid file
15+
; Note: the default prefix is /var
16+
; Default Value: none
17+
pid = /run/php/php8.1-fpm.pid
18+
19+
; Error log file
20+
; If it's set to "syslog", log is sent to syslogd instead of being written
21+
; in a local file.
22+
; Note: the default prefix is /var
23+
; Default Value: log/php-fpm.log
24+
error_log = /proc/self/fd/2
25+
26+
; syslog_facility is used to specify what type of program is logging the
27+
; message. This lets syslogd specify that messages from different facilities
28+
; will be handled differently.
29+
; See syslog(3) for possible values (ex daemon equiv LOG_DAEMON)
30+
; Default Value: daemon
31+
;syslog.facility = daemon
32+
33+
; syslog_ident is prepended to every message. If you have multiple FPM
34+
; instances running on the same server, you can change the default value
35+
; which must suit common needs.
36+
; Default Value: php-fpm
37+
;syslog.ident = php-fpm
38+
39+
; Log level
40+
; Possible Values: alert, error, warning, notice, debug
41+
; Default Value: notice
42+
;log_level = notice
43+
44+
; If this number of child processes exit with SIGSEGV or SIGBUS within the time
45+
; interval set by emergency_restart_interval then FPM will restart. A value
46+
; of '0' means 'Off'.
47+
; Default Value: 0
48+
;emergency_restart_threshold = 0
49+
50+
; Interval of time used by emergency_restart_interval to determine when
51+
; a graceful restart will be initiated. This can be useful to work around
52+
; accidental corruptions in an accelerator's shared memory.
53+
; Available Units: s(econds), m(inutes), h(ours), or d(ays)
54+
; Default Unit: seconds
55+
; Default Value: 0
56+
;emergency_restart_interval = 0
57+
58+
; Time limit for child processes to wait for a reaction on signals from master.
59+
; Available units: s(econds), m(inutes), h(ours), or d(ays)
60+
; Default Unit: seconds
61+
; Default Value: 0
62+
;process_control_timeout = 0
63+
64+
; The maximum number of processes FPM will fork. This has been design to control
65+
; the global number of processes when using dynamic PM within a lot of pools.
66+
; Use it with caution.
67+
; Note: A value of 0 indicates no limit
68+
; Default Value: 0
69+
; process.max = 128
70+
71+
; Specify the nice(2) priority to apply to the master process (only if set)
72+
; The value can vary from -19 (highest priority) to 20 (lower priority)
73+
; Note: - It will only work if the FPM master process is launched as root
74+
; - The pool process will inherit the master process priority
75+
; unless it specified otherwise
76+
; Default Value: no set
77+
; process.priority = -19
78+
79+
; Send FPM to background. Set to 'no' to keep FPM in foreground for debugging.
80+
; Default Value: yes
81+
daemonize = no
82+
83+
; Set open file descriptor rlimit for the master process.
84+
; Default Value: system defined value
85+
;rlimit_files = 1024
86+
87+
; Set max core size rlimit for the master process.
88+
; Possible Values: 'unlimited' or an integer greater or equal to 0
89+
; Default Value: system defined value
90+
;rlimit_core = 0
91+
92+
; Specify the event mechanism FPM will use. The following is available:
93+
; - select (any POSIX os)
94+
; - poll (any POSIX os)
95+
; - epoll (linux >= 2.5.44)
96+
; - kqueue (FreeBSD >= 4.1, OpenBSD >= 2.9, NetBSD >= 2.0)
97+
; - /dev/poll (Solaris >= 7)
98+
; - port (Solaris >= 10)
99+
; Default Value: not set (auto detection)
100+
;events.mechanism = epoll
101+
102+
; When FPM is build with systemd integration, specify the interval,
103+
; in second, between health report notification to systemd.
104+
; Set to 0 to disable.
105+
; Available Units: s(econds), m(inutes), h(ours)
106+
; Default Unit: seconds
107+
; Default value: 10
108+
;systemd_interval = 10
109+
110+
;;;;;;;;;;;;;;;;;;;;
111+
; Pool Definitions ;
112+
;;;;;;;;;;;;;;;;;;;;
113+
114+
; Multiple pools of child processes may be started with different listening
115+
; ports and different management options. The name of the pool will be
116+
; used in logs and stats. There is no limitation on the number of pools which
117+
; FPM can handle. Your system will tell you anyway :)
118+
119+
; Include one or more files. If glob(3) exists, it is used to include a bunch of
120+
; files from a glob(3) pattern. This directive can be used everywhere in the
121+
; file.
122+
; Relative path can also be used. They will be prefixed by:
123+
; - the global prefix if it's been set (-p argument)
124+
; - /usr otherwise
125+
include=/etc/php/8.1/fpm/pool.d/*.conf

php8.1/php.ini

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
display_errors = On
2+
display_startup_errors = On
3+
error_reporting = E_ALL
4+
html_errors = On
5+
log_errors = On
6+
opcache.enable = 1
7+
opcache.jit_buffer_size = 100M
8+
9+
xdebug.mode=develop,debug
10+
xdebug.start_with_request=yes
11+
xdebug.discover_client_host=0
12+
xdebug.client_host = host.docker.internal

0 commit comments

Comments
 (0)