feat: PHP 增加是否安装 supervisor 选项

This commit is contained in:
zhengkunwang223 2023-12-05 15:24:17 +08:00
parent bc307a2198
commit e5370c604d
58 changed files with 227 additions and 545 deletions

View File

@ -17,8 +17,6 @@ RUN curl -o /usr/bin/composer https://mirrors.aliyun.com/composer/composer.phar
&& chmod +x /usr/bin/composer
ENV COMPOSER_HOME=/tmp/composer
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN usermod -u 1000 www-data && groupmod -g 1000 www-data

View File

@ -17,7 +17,6 @@ services:
- ./supervisor/supervisor.d:/etc/supervisor.d
- ./supervisor/log/supervisord.log:/var/log/supervisord.log
- ./supervisor/run.sh:/run.sh
command: sh /run.sh
ports:
- 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000
labels:

View File

@ -1,3 +0,0 @@
#!/bin/sh
supervisord -c /etc/supervisord.conf

View File

@ -1,155 +0,0 @@
; Sample supervisor config file.
;
; For more information on the config file, please see:
; http://supervisord.org/configuration.html
;
; Notes:
; - Shell expansion ("~" or "$HOME") is not supported. Environment
; variables can be expanded using this syntax: "%(ENV_HOME)s".
; - Quotes around values are not supported, except in the case of
; the environment= options as shown below.
; - Comments must have a leading space: "a=b ;comment" not "a=b;comment".
; - Command will be truncated if it looks like a config file comment, e.g.
; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ".
[unix_http_server]
; the path to the socket file
file = /run/supervisor.sock
; chmod=0700 ; socket file mode (default 0700)
; chown=nobody:nogroup ; socket file uid:gid owner
; username=user ; default is no username (open server)
; password=123 ; default is no password (open server)
; inet (TCP) server disabled by default
[inet_http_server]
; ip_address:port specifier, *:port for all iface
port = 127.0.0.1:9002
; username=user ; default is no username (open server)
; password=123 ; default is no password (open server)
[supervisord]
; main log file; default $CWD/supervisord.log
logfile = /var/log/supervisord.log
; max main logfile bytes b4 rotation; default 50MB
logfile_maxbytes = 50MB
; # of main logfile backups; 0 means none, default 11
logfile_backups = 10
; log level; default info; others: debug,warn,trace
loglevel = info
; supervisord pidfile; default supervisord.pid
pidfile = /run/supervisord.pid
; start in foreground if true; default false
nodaemon = true
; min. avail startup file descriptors; default 1024
minfds = 1024
; min. avail process descriptors;default 200
minprocs = 200
; umask=022 ; process file creation umask; default 022
; user=supervisord ; setuid to this UNIX account at startup; recommended if root
; identifier=supervisor ; supervisord identifier, default is 'supervisor'
; directory=/tmp ; default is not to cd during start
; nocleanup=true ; don't clean up tempfiles at start; default false
; 'AUTO' child log dir, default $TEMP
childlogdir = /var/log/supervisor
; environment=KEY="value" ; key value pairs to add to environment
; strip_ansi=false ; strip ansi escape codes in logs; def. false
; The rpcinterface:supervisor section must remain in the config file for
; RPC (supervisorctl/web interface) to work. Additional interfaces may be
; added by defining them in separate [rpcinterface:x] sections.
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
; The supervisorctl section configures how supervisorctl will connect to
; supervisord. configure it match the settings in either the unix_http_server
; or inet_http_server section.
[supervisorctl]
; use a unix:// URL for a unix socket
serverurl = unix:///run/supervisor.sock
; serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
; username=chris ; should be same as in [*_http_server] if set
; password=123 ; should be same as in [*_http_server] if set
; prompt=mysupervisor ; cmd line prompt (default "supervisor")
; history_file=~/.sc_history ; use readline history if available
; The sample program section below shows all possible program subsection values.
; Create one or more 'real' program: sections to be able to control them under
; supervisor.
; [program:theprogramname]
; command=/bin/cat ; the program (relative uses PATH, can take args)
; process_name=%(program_name)s ; process_name expr (default %(program_name)s)
; numprocs=1 ; number of processes copies to start (def 1)
; directory=/tmp ; directory to cwd to before exec (def no cwd)
; umask=022 ; umask for process (default None)
; priority=999 ; the relative start priority (default 999)
; autostart=true ; start at supervisord start (default: true)
; startsecs=1 ; # of secs prog must stay up to be running (def. 1)
; startretries=3 ; max # of serial start failures when starting (default 3)
; autorestart=unexpected ; when to restart if exited after running (def: unexpected)
; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
; stopsignal=QUIT ; signal used to kill process (default TERM)
; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
; stopasgroup=false ; send stop signal to the UNIX process group (default false)
; killasgroup=false ; SIGKILL the UNIX process group (def false)
; user=chrism ; setuid to this UNIX account to run the program
; redirect_stderr=true ; redirect proc stderr to stdout (default false)
; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
; stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
; stdout_events_enabled=false ; emit events on stdout writes (default false)
; stdout_syslog=false ; send stdout to syslog with process name (default false)
; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
; stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
; stderr_events_enabled=false ; emit events on stderr writes (default false)
; stderr_syslog=false ; send stderr to syslog with process name (default false)
; environment=A="1",B="2" ; process environment additions (def no adds)
; serverurl=AUTO ; override serverurl computation (childutils)
; The sample eventlistener section below shows all possible eventlistener
; subsection values. Create one or more 'real' eventlistener: sections to be
; able to handle event notifications sent by supervisord.
; [eventlistener:theeventlistenername]
; command=/bin/eventlistener ; the program (relative uses PATH, can take args)
; process_name=%(program_name)s ; process_name expr (default %(program_name)s)
; numprocs=1 ; number of processes copies to start (def 1)
; events=EVENT ; event notif. types to subscribe to (req'd)
; buffer_size=10 ; event buffer queue size (default 10)
; directory=/tmp ; directory to cwd to before exec (def no cwd)
; umask=022 ; umask for process (default None)
; priority=-1 ; the relative start priority (default -1)
; autostart=true ; start at supervisord start (default: true)
; startsecs=1 ; # of secs prog must stay up to be running (def. 1)
; startretries=3 ; max # of serial start failures when starting (default 3)
; autorestart=unexpected ; autorestart if exited after running (def: unexpected)
; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
; stopsignal=QUIT ; signal used to kill process (default TERM)
; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
; stopasgroup=false ; send stop signal to the UNIX process group (default false)
; killasgroup=false ; SIGKILL the UNIX process group (def false)
; user=chrism ; setuid to this UNIX account to run the program
; redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners
; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
; stdout_events_enabled=false ; emit events on stdout writes (default false)
; stdout_syslog=false ; send stdout to syslog with process name (default false)
; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
; stderr_events_enabled=false ; emit events on stderr writes (default false)
; stderr_syslog=false ; send stderr to syslog with process name (default false)
; environment=A="1",B="2" ; process environment additions
; serverurl=AUTO ; override serverurl computation (childutils)
; The sample group section below shows all possible group values. Create one
; or more 'real' group: sections to create "heterogeneous" process groups.
; [group:thegroupname]
; programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions
; priority=999 ; the relative start priority (default 999)
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor.d/*.ini

View File

@ -16,9 +16,6 @@ WORKDIR /tmp/extensions
RUN chmod +x install.sh \
&& sh install.sh
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone

View File

@ -17,7 +17,6 @@ services:
- ./supervisor/supervisor.d:/etc/supervisor.d
- ./supervisor/log/supervisord.log:/var/log/supervisord.log
- ./supervisor/run.sh:/run.sh
command: sh /run.sh
ports:
- 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000
labels:

View File

@ -1,3 +0,0 @@
#!/bin/sh
supervisord -c /etc/supervisord.conf

View File

@ -1,155 +0,0 @@
; Sample supervisor config file.
;
; For more information on the config file, please see:
; http://supervisord.org/configuration.html
;
; Notes:
; - Shell expansion ("~" or "$HOME") is not supported. Environment
; variables can be expanded using this syntax: "%(ENV_HOME)s".
; - Quotes around values are not supported, except in the case of
; the environment= options as shown below.
; - Comments must have a leading space: "a=b ;comment" not "a=b;comment".
; - Command will be truncated if it looks like a config file comment, e.g.
; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ".
[unix_http_server]
; the path to the socket file
file = /run/supervisor.sock
; chmod=0700 ; socket file mode (default 0700)
; chown=nobody:nogroup ; socket file uid:gid owner
; username=user ; default is no username (open server)
; password=123 ; default is no password (open server)
; inet (TCP) server disabled by default
[inet_http_server]
; ip_address:port specifier, *:port for all iface
port = 127.0.0.1:9002
; username=user ; default is no username (open server)
; password=123 ; default is no password (open server)
[supervisord]
; main log file; default $CWD/supervisord.log
logfile = /var/log/supervisord.log
; max main logfile bytes b4 rotation; default 50MB
logfile_maxbytes = 50MB
; # of main logfile backups; 0 means none, default 11
logfile_backups = 10
; log level; default info; others: debug,warn,trace
loglevel = info
; supervisord pidfile; default supervisord.pid
pidfile = /run/supervisord.pid
; start in foreground if true; default false
nodaemon = true
; min. avail startup file descriptors; default 1024
minfds = 1024
; min. avail process descriptors;default 200
minprocs = 200
; umask=022 ; process file creation umask; default 022
; user=supervisord ; setuid to this UNIX account at startup; recommended if root
; identifier=supervisor ; supervisord identifier, default is 'supervisor'
; directory=/tmp ; default is not to cd during start
; nocleanup=true ; don't clean up tempfiles at start; default false
; 'AUTO' child log dir, default $TEMP
childlogdir = /var/log/supervisor
; environment=KEY="value" ; key value pairs to add to environment
; strip_ansi=false ; strip ansi escape codes in logs; def. false
; The rpcinterface:supervisor section must remain in the config file for
; RPC (supervisorctl/web interface) to work. Additional interfaces may be
; added by defining them in separate [rpcinterface:x] sections.
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
; The supervisorctl section configures how supervisorctl will connect to
; supervisord. configure it match the settings in either the unix_http_server
; or inet_http_server section.
[supervisorctl]
; use a unix:// URL for a unix socket
serverurl = unix:///run/supervisor.sock
; serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
; username=chris ; should be same as in [*_http_server] if set
; password=123 ; should be same as in [*_http_server] if set
; prompt=mysupervisor ; cmd line prompt (default "supervisor")
; history_file=~/.sc_history ; use readline history if available
; The sample program section below shows all possible program subsection values.
; Create one or more 'real' program: sections to be able to control them under
; supervisor.
; [program:theprogramname]
; command=/bin/cat ; the program (relative uses PATH, can take args)
; process_name=%(program_name)s ; process_name expr (default %(program_name)s)
; numprocs=1 ; number of processes copies to start (def 1)
; directory=/tmp ; directory to cwd to before exec (def no cwd)
; umask=022 ; umask for process (default None)
; priority=999 ; the relative start priority (default 999)
; autostart=true ; start at supervisord start (default: true)
; startsecs=1 ; # of secs prog must stay up to be running (def. 1)
; startretries=3 ; max # of serial start failures when starting (default 3)
; autorestart=unexpected ; when to restart if exited after running (def: unexpected)
; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
; stopsignal=QUIT ; signal used to kill process (default TERM)
; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
; stopasgroup=false ; send stop signal to the UNIX process group (default false)
; killasgroup=false ; SIGKILL the UNIX process group (def false)
; user=chrism ; setuid to this UNIX account to run the program
; redirect_stderr=true ; redirect proc stderr to stdout (default false)
; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
; stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
; stdout_events_enabled=false ; emit events on stdout writes (default false)
; stdout_syslog=false ; send stdout to syslog with process name (default false)
; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
; stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
; stderr_events_enabled=false ; emit events on stderr writes (default false)
; stderr_syslog=false ; send stderr to syslog with process name (default false)
; environment=A="1",B="2" ; process environment additions (def no adds)
; serverurl=AUTO ; override serverurl computation (childutils)
; The sample eventlistener section below shows all possible eventlistener
; subsection values. Create one or more 'real' eventlistener: sections to be
; able to handle event notifications sent by supervisord.
; [eventlistener:theeventlistenername]
; command=/bin/eventlistener ; the program (relative uses PATH, can take args)
; process_name=%(program_name)s ; process_name expr (default %(program_name)s)
; numprocs=1 ; number of processes copies to start (def 1)
; events=EVENT ; event notif. types to subscribe to (req'd)
; buffer_size=10 ; event buffer queue size (default 10)
; directory=/tmp ; directory to cwd to before exec (def no cwd)
; umask=022 ; umask for process (default None)
; priority=-1 ; the relative start priority (default -1)
; autostart=true ; start at supervisord start (default: true)
; startsecs=1 ; # of secs prog must stay up to be running (def. 1)
; startretries=3 ; max # of serial start failures when starting (default 3)
; autorestart=unexpected ; autorestart if exited after running (def: unexpected)
; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
; stopsignal=QUIT ; signal used to kill process (default TERM)
; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
; stopasgroup=false ; send stop signal to the UNIX process group (default false)
; killasgroup=false ; SIGKILL the UNIX process group (def false)
; user=chrism ; setuid to this UNIX account to run the program
; redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners
; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
; stdout_events_enabled=false ; emit events on stdout writes (default false)
; stdout_syslog=false ; send stdout to syslog with process name (default false)
; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
; stderr_events_enabled=false ; emit events on stderr writes (default false)
; stderr_syslog=false ; send stderr to syslog with process name (default false)
; environment=A="1",B="2" ; process environment additions
; serverurl=AUTO ; override serverurl computation (childutils)
; The sample group section below shows all possible group values. Create one
; or more 'real' group: sections to create "heterogeneous" process groups.
; [group:thegroupname]
; programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions
; priority=999 ; the relative start priority (default 999)
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor.d/*.ini

View File

@ -5,7 +5,7 @@ ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL
RUN if [ "$CONTAINER_PACKAGE_URL" ]; then sed -i "s|http://dl-cdn.alpinelinux.org/alpine/v3.4|https://${CONTAINER_PACKAGE_URL}/alpine/v3.12|g" /etc/apk/repositories; fi
RUN if [ "$CONTAINER_PACKAGE_URL" ]; then sed -i "s|http://dl-cdn.alpinelinux.org/alpine/v3.8|https://${CONTAINER_PACKAGE_URL}/alpine/v3.12|g" /etc/apk/repositories; fi
ADD ./extensions/install-php-extensions /usr/local/bin/
@ -21,10 +21,6 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
# Fix: https://github.com/docker-library/php/issues/1121
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

View File

@ -17,7 +17,6 @@ services:
- ./supervisor/supervisor.d:/etc/supervisor.d
- ./supervisor/log/supervisord.log:/var/log/supervisord.log
- ./supervisor/run.sh:/run.sh
command: sh /run.sh
ports:
- 127.0.0.1:${PANEL_APP_PORT_HTTP}:9000
labels:

View File

@ -1,3 +0,0 @@
#!/bin/sh
supervisord -c /etc/supervisord.conf

View File

@ -1,155 +0,0 @@
; Sample supervisor config file.
;
; For more information on the config file, please see:
; http://supervisord.org/configuration.html
;
; Notes:
; - Shell expansion ("~" or "$HOME") is not supported. Environment
; variables can be expanded using this syntax: "%(ENV_HOME)s".
; - Quotes around values are not supported, except in the case of
; the environment= options as shown below.
; - Comments must have a leading space: "a=b ;comment" not "a=b;comment".
; - Command will be truncated if it looks like a config file comment, e.g.
; "command=bash -c 'foo ; bar'" will truncate to "command=bash -c 'foo ".
[unix_http_server]
; the path to the socket file
file = /run/supervisor.sock
; chmod=0700 ; socket file mode (default 0700)
; chown=nobody:nogroup ; socket file uid:gid owner
; username=user ; default is no username (open server)
; password=123 ; default is no password (open server)
; inet (TCP) server disabled by default
[inet_http_server]
; ip_address:port specifier, *:port for all iface
port = 127.0.0.1:9002
; username=user ; default is no username (open server)
; password=123 ; default is no password (open server)
[supervisord]
; main log file; default $CWD/supervisord.log
logfile = /var/log/supervisord.log
; max main logfile bytes b4 rotation; default 50MB
logfile_maxbytes = 50MB
; # of main logfile backups; 0 means none, default 11
logfile_backups = 10
; log level; default info; others: debug,warn,trace
loglevel = info
; supervisord pidfile; default supervisord.pid
pidfile = /run/supervisord.pid
; start in foreground if true; default false
nodaemon = true
; min. avail startup file descriptors; default 1024
minfds = 1024
; min. avail process descriptors;default 200
minprocs = 200
; umask=022 ; process file creation umask; default 022
; user=supervisord ; setuid to this UNIX account at startup; recommended if root
; identifier=supervisor ; supervisord identifier, default is 'supervisor'
; directory=/tmp ; default is not to cd during start
; nocleanup=true ; don't clean up tempfiles at start; default false
; 'AUTO' child log dir, default $TEMP
childlogdir = /var/log/supervisor
; environment=KEY="value" ; key value pairs to add to environment
; strip_ansi=false ; strip ansi escape codes in logs; def. false
; The rpcinterface:supervisor section must remain in the config file for
; RPC (supervisorctl/web interface) to work. Additional interfaces may be
; added by defining them in separate [rpcinterface:x] sections.
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
; The supervisorctl section configures how supervisorctl will connect to
; supervisord. configure it match the settings in either the unix_http_server
; or inet_http_server section.
[supervisorctl]
; use a unix:// URL for a unix socket
serverurl = unix:///run/supervisor.sock
; serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
; username=chris ; should be same as in [*_http_server] if set
; password=123 ; should be same as in [*_http_server] if set
; prompt=mysupervisor ; cmd line prompt (default "supervisor")
; history_file=~/.sc_history ; use readline history if available
; The sample program section below shows all possible program subsection values.
; Create one or more 'real' program: sections to be able to control them under
; supervisor.
; [program:theprogramname]
; command=/bin/cat ; the program (relative uses PATH, can take args)
; process_name=%(program_name)s ; process_name expr (default %(program_name)s)
; numprocs=1 ; number of processes copies to start (def 1)
; directory=/tmp ; directory to cwd to before exec (def no cwd)
; umask=022 ; umask for process (default None)
; priority=999 ; the relative start priority (default 999)
; autostart=true ; start at supervisord start (default: true)
; startsecs=1 ; # of secs prog must stay up to be running (def. 1)
; startretries=3 ; max # of serial start failures when starting (default 3)
; autorestart=unexpected ; when to restart if exited after running (def: unexpected)
; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
; stopsignal=QUIT ; signal used to kill process (default TERM)
; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
; stopasgroup=false ; send stop signal to the UNIX process group (default false)
; killasgroup=false ; SIGKILL the UNIX process group (def false)
; user=chrism ; setuid to this UNIX account to run the program
; redirect_stderr=true ; redirect proc stderr to stdout (default false)
; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
; stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
; stdout_events_enabled=false ; emit events on stdout writes (default false)
; stdout_syslog=false ; send stdout to syslog with process name (default false)
; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
; stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0)
; stderr_events_enabled=false ; emit events on stderr writes (default false)
; stderr_syslog=false ; send stderr to syslog with process name (default false)
; environment=A="1",B="2" ; process environment additions (def no adds)
; serverurl=AUTO ; override serverurl computation (childutils)
; The sample eventlistener section below shows all possible eventlistener
; subsection values. Create one or more 'real' eventlistener: sections to be
; able to handle event notifications sent by supervisord.
; [eventlistener:theeventlistenername]
; command=/bin/eventlistener ; the program (relative uses PATH, can take args)
; process_name=%(program_name)s ; process_name expr (default %(program_name)s)
; numprocs=1 ; number of processes copies to start (def 1)
; events=EVENT ; event notif. types to subscribe to (req'd)
; buffer_size=10 ; event buffer queue size (default 10)
; directory=/tmp ; directory to cwd to before exec (def no cwd)
; umask=022 ; umask for process (default None)
; priority=-1 ; the relative start priority (default -1)
; autostart=true ; start at supervisord start (default: true)
; startsecs=1 ; # of secs prog must stay up to be running (def. 1)
; startretries=3 ; max # of serial start failures when starting (default 3)
; autorestart=unexpected ; autorestart if exited after running (def: unexpected)
; exitcodes=0 ; 'expected' exit codes used with autorestart (default 0)
; stopsignal=QUIT ; signal used to kill process (default TERM)
; stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10)
; stopasgroup=false ; send stop signal to the UNIX process group (default false)
; killasgroup=false ; SIGKILL the UNIX process group (def false)
; user=chrism ; setuid to this UNIX account to run the program
; redirect_stderr=false ; redirect_stderr=true is not allowed for eventlisteners
; stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO
; stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stdout_logfile_backups=10 ; # of stdout logfile backups (0 means none, default 10)
; stdout_events_enabled=false ; emit events on stdout writes (default false)
; stdout_syslog=false ; send stdout to syslog with process name (default false)
; stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
; stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
; stderr_logfile_backups=10 ; # of stderr logfile backups (0 means none, default 10)
; stderr_events_enabled=false ; emit events on stderr writes (default false)
; stderr_syslog=false ; send stderr to syslog with process name (default false)
; environment=A="1",B="2" ; process environment additions
; serverurl=AUTO ; override serverurl computation (childutils)
; The sample group section below shows all possible group values. Create one
; or more 'real' group: sections to create "heterogeneous" process groups.
; [group:thegroupname]
; programs=progname1,progname2 ; each refers to 'x' in [program:x] definitions
; priority=999 ; the relative start priority (default 999)
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor.d/*.ini

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:7.0.33
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -4,11 +4,10 @@ FROM ${PHP_IMAGE}
ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL
ARG INSTALL_SUPERVISOR
RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi
ADD ./extensions/install-php-extensions /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-php-extensions
@ -21,15 +20,15 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/1121
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
# Install composer and change it's cache home
RUN chmod +x install-composer.sh \
&& sh install-composer.sh \
@ -39,5 +38,4 @@ ENV COMPOSER_HOME=/tmp/composer
# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
WORKDIR /www

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:7.1.33
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -4,11 +4,10 @@ FROM ${PHP_IMAGE}
ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL
ARG INSTALL_SUPERVISOR
RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi
ADD ./extensions/install-php-extensions /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-php-extensions
@ -21,15 +20,15 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/1121
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
# Install composer and change it's cache home
RUN chmod +x install-composer.sh \
&& sh install-composer.sh \
@ -39,5 +38,4 @@ ENV COMPOSER_HOME=/tmp/composer
# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
WORKDIR /www

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:7.2.34
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -4,11 +4,10 @@ FROM ${PHP_IMAGE}
ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL
ARG INSTALL_SUPERVISOR
RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi
ADD ./extensions/install-php-extensions /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-php-extensions
@ -21,15 +20,15 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/1121
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
# Install composer and change it's cache home
RUN chmod +x install-composer.sh \
&& sh install-composer.sh \
@ -39,5 +38,4 @@ ENV COMPOSER_HOME=/tmp/composer
# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
WORKDIR /www

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:7.3.33
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -4,11 +4,10 @@ FROM ${PHP_IMAGE}
ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL
ARG INSTALL_SUPERVISOR
RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi
ADD ./extensions/install-php-extensions /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-php-extensions
@ -21,15 +20,15 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/1121
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
# Install composer and change it's cache home
RUN chmod +x install-composer.sh \
&& sh install-composer.sh \
@ -39,5 +38,4 @@ ENV COMPOSER_HOME=/tmp/composer
# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
WORKDIR /www

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:7.4.33
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -4,11 +4,10 @@ FROM ${PHP_IMAGE}
ARG TZ
ARG PHP_EXTENSIONS
ARG CONTAINER_PACKAGE_URL
ARG INSTALL_SUPERVISOR
RUN if [ $CONTAINER_PACKAGE_URL ] ; then sed -i "s/dl-cdn.alpinelinux.org/${CONTAINER_PACKAGE_URL}/g" /etc/apk/repositories ; fi
ADD ./extensions/install-php-extensions /usr/local/bin/
RUN chmod uga+x /usr/local/bin/install-php-extensions
@ -21,14 +20,15 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/1121
RUN apk add --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/v3.13/community/ gnu-libiconv=1.15-r3
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php
# Install composer and change it's cache home
RUN chmod +x install-composer.sh \
&& sh install-composer.sh \
@ -38,5 +38,4 @@ ENV COMPOSER_HOME=/tmp/composer
# php image's www-data user uid & gid are 82, change them to 1000 (primary user)
RUN apk --no-cache add shadow && usermod -u 1000 www-data && groupmod -g 1000 www-data
WORKDIR /www

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:8.0.30
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -22,8 +22,10 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/240
RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:8.1.23
INSTALL_SUPERVISOR=0

View File

@ -5,7 +5,7 @@
"multiple": true,
"labelZh": "扩展",
"labelEn": "Extensions",
"default": [],
"default": ["mysqli","pdo_mysql"],
"values": [
{
"label": "opcache",
@ -110,6 +110,10 @@
"label": "gd",
"value": "gd"
},
{
"label": "ioncube_loader",
"value": "ioncube_loader"
},
{
"label": "curl",
"value": "curl"
@ -125,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -22,8 +22,10 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/240
RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi

View File

@ -11,3 +11,4 @@ SOURCE_DIR=./www
TZ=Asia/Shanghai
DATA_DIR=./data
IMAGE_NAME=1panel-php:8.2.10
INSTALL_SUPERVISOR=0

View File

@ -129,6 +129,23 @@
],
"envKey": "PHP_EXTENSIONS",
"edit": true
},
{
"type": "select",
"labelZh": "安装 Supervisor",
"labelEn": "Install Supervisor",
"default": "0",
"values": [
{
"label": "否",
"value": "0"
},
{
"label": "是",
"value": "1"
}
],
"envKey": "INSTALL_SUPERVISOR"
}
]
}

View File

@ -8,6 +8,7 @@ services:
CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}
PHP_EXTENSIONS: ${PHP_EXTENSIONS}
TZ: ${TZ}
INSTALL_SUPERVISOR: ${INSTALL_SUPERVISOR}
image: ${IMAGE_NAME}
volumes:
- ${SOURCE_DIR}:/www/

View File

@ -22,9 +22,10 @@ RUN apk --no-cache add tzdata \
&& cp "/usr/share/zoneinfo/$TZ" /etc/localtime \
&& echo "$TZ" > /etc/timezone
RUN apk add supervisor \
&& mkdir -p /var/log/supervisor
RUN if [ $INSTALL_SUPERVISOR = 1 ] ; then \
apk add --no-cache supervisor && \
mkdir -p /var/log/supervisor ; \
fi
# Fix: https://github.com/docker-library/php/issues/240
RUN apk add gnu-libiconv libstdc++ --no-cache --repository http://${CONTAINER_PACKAGE_URL}/alpine/edge/community/ --allow-untrusted
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

View File

@ -1,3 +1,5 @@
#!/bin/sh
if command -v supervisord > /dev/null 2>&1; then
supervisord -c /etc/supervisord.conf
fi