mirror of
https://codeberg.org/icewind/haze.git
synced 2026-06-03 17:14:08 +02:00
php versions
This commit is contained in:
parent
30c028f5bd
commit
6b922733e2
11 changed files with 322 additions and 13 deletions
|
|
@ -22,10 +22,11 @@ work_dir = "/path/to/temp/folder" # optional, defaults to /tmp/haze
|
|||
#### Start an instance
|
||||
|
||||
```bash
|
||||
haze start [database]
|
||||
haze start [database] [php-version]
|
||||
```
|
||||
|
||||
Where database is one of `sqlite`, `mysql`, `mariadb` or `pgsql` with an optional version (e.g. `pgsql:12`), defaults to `sqlite`.
|
||||
Where `database` is one of `sqlite`, `mysql`, `mariadb` or `pgsql` with an optional version (e.g. `pgsql:12`), defaults to `sqlite`.
|
||||
And `php-version` is one of `7.2`, `7.3`, `7.4`, `8.0`, `7` or `8`, defaults to `8.0`
|
||||
|
||||
### List running instances
|
||||
|
||||
|
|
|
|||
1
images/haze/.gitignore → images/.gitignore
vendored
1
images/haze/.gitignore → images/.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
|||
*.tar.bz2
|
||||
*.tar.bz2.asc
|
||||
.vagrant/
|
||||
Dockerfile
|
||||
15
images/build.sh
Executable file
15
images/build.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
|
||||
versions=("7.2" "7.3" "7.4" "8.0")
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
echo "building haze-php-$version"
|
||||
docker build -t "icewind1991/haze-php:$version" -f "php/Dockerfile.$version" php
|
||||
done
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
echo "building haze-$version"
|
||||
cp haze/Dockerfile.tmpl haze/Dockerfile
|
||||
sed -i "s/<version>/$version/" haze/Dockerfile
|
||||
docker build -t "icewind1991/haze:$version" -f "haze/Dockerfile" haze
|
||||
done
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
FROM icewind1991/haze-php:7.4
|
||||
FROM icewind1991/haze-php:<version>
|
||||
MAINTAINER Robin Appelman <robin@icewind.nl>
|
||||
# MAINTAINER Robin Schneider <ypid@riseup.net>
|
||||
# MAINTAINER silvio <silvio@port1024.net>
|
||||
92
images/php/Dockerfile.7.2
Normal file
92
images/php/Dockerfile.7.2
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
FROM php:7.2-fpm
|
||||
MAINTAINER Robin Appelman <robin@icewind.nl>
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive ;\
|
||||
apt-get update && \
|
||||
apt-get install --assume-yes \
|
||||
bzip2 \
|
||||
nginx \
|
||||
libaio-dev \
|
||||
wget \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# php exceptions
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libpq5 \
|
||||
libpq-dev \
|
||||
libsqlite3-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libmagickwand-dev \
|
||||
libmagickcore-dev \
|
||||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& docker-php-ext-configure gd \
|
||||
--with-gd \
|
||||
--with-jpeg-dir \
|
||||
--with-png-dir \
|
||||
--with-zlib-dir \
|
||||
--with-freetype-dir \
|
||||
&& docker-php-ext-install iconv zip pdo pdo_pgsql pdo_sqlite pgsql pdo_mysql intl curl mbstring gd pcntl ldap \
|
||||
&& pecl install imagick \
|
||||
&& pecl install inotify \
|
||||
&& pecl install smbclient \
|
||||
&& apt-get remove -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libsqlite3-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libmagick-dev \
|
||||
libmagickwand-dev \
|
||||
libmagickcore-dev \
|
||||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pecl install apcu \
|
||||
&& pecl install xdebug \
|
||||
&& pecl install redis \
|
||||
&& export VERSION=`php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;"` \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/${VERSION} \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so \
|
||||
&& echo "extension=imagick.so" > $PHP_INI_DIR/conf.d/imagick.ini \
|
||||
&& echo "extension=smbclient.so" > $PHP_INI_DIR/conf.d/smbclient.ini \
|
||||
&& echo "extension=inotify.so" > $PHP_INI_DIR/conf.d/inotify.ini \
|
||||
&& echo "extension=blackfire.so\nblackfire.agent_socket=\${BLACKFIRE_PORT}" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.mode=debug,trace,profile" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.start_with_request=trigger" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.remote_port=9000" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.discover_client_host=true" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "memory_limit = 512M" > $PHP_INI_DIR/conf.d/memory_limit.ini
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
|
||||
|
||||
ADD apcu.ini opcache.ini redis.ini $PHP_INI_DIR/conf.d/
|
||||
|
||||
ADD nginx.conf nginx-app.conf /etc/nginx/
|
||||
|
||||
|
||||
ADD php-fpm.conf /usr/local/etc/
|
||||
ADD index.php /var/www/html/
|
||||
|
||||
ADD bootstrap-nginx.sh /usr/local/bin/
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
ENTRYPOINT ["bootstrap-nginx.sh"]
|
||||
|
|
@ -55,7 +55,7 @@ RUN apt-get update \
|
|||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pecl install apcu \
|
||||
&& pecl install xdebug \
|
||||
|
|
@ -76,7 +76,7 @@ RUN pecl install apcu \
|
|||
&& echo "memory_limit = 512M" > $PHP_INI_DIR/conf.d/memory_limit.ini
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
|
||||
|
||||
|
||||
ADD apcu.ini opcache.ini redis.ini $PHP_INI_DIR/conf.d/
|
||||
|
||||
ADD nginx.conf nginx-app.conf /etc/nginx/
|
||||
90
images/php/Dockerfile.7.4
Normal file
90
images/php/Dockerfile.7.4
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
FROM php:7.4-fpm
|
||||
MAINTAINER Robin Appelman <robin@icewind.nl>
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive ;\
|
||||
apt-get update && \
|
||||
apt-get install --assume-yes \
|
||||
bzip2 \
|
||||
nginx \
|
||||
libaio-dev \
|
||||
wget \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# php exceptions
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libpq5 \
|
||||
libpq-dev \
|
||||
libsqlite3-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libmagickwand-dev \
|
||||
libmagickcore-dev \
|
||||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& docker-php-ext-configure gd \
|
||||
--enable-gd \
|
||||
--with-jpeg \
|
||||
--with-freetype \
|
||||
&& docker-php-ext-install iconv zip pdo pdo_pgsql pdo_sqlite pgsql pdo_mysql intl curl mbstring gd pcntl ldap \
|
||||
&& pecl install imagick \
|
||||
&& pecl install inotify \
|
||||
&& pecl install smbclient \
|
||||
&& apt-get remove -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libsqlite3-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libmagick-dev \
|
||||
libmagickwand-dev \
|
||||
libmagickcore-dev \
|
||||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pecl install apcu \
|
||||
&& pecl install xdebug \
|
||||
&& pecl install redis \
|
||||
&& export VERSION=`php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;"` \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/${VERSION} \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so \
|
||||
&& echo "extension=imagick.so" > $PHP_INI_DIR/conf.d/imagick.ini \
|
||||
&& echo "extension=smbclient.so" > $PHP_INI_DIR/conf.d/smbclient.ini \
|
||||
&& echo "extension=inotify.so" > $PHP_INI_DIR/conf.d/inotify.ini \
|
||||
&& echo "extension=blackfire.so\nblackfire.agent_socket=\${BLACKFIRE_PORT}" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.mode=debug,trace,profile" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.start_with_request=trigger" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.remote_port=9000" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.discover_client_host=true" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "memory_limit = 512M" > $PHP_INI_DIR/conf.d/memory_limit.ini
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
|
||||
|
||||
ADD apcu.ini opcache.ini redis.ini $PHP_INI_DIR/conf.d/
|
||||
|
||||
ADD nginx.conf nginx-app.conf /etc/nginx/
|
||||
|
||||
|
||||
ADD php-fpm.conf /usr/local/etc/
|
||||
ADD index.php /var/www/html/
|
||||
|
||||
ADD bootstrap-nginx.sh /usr/local/bin/
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
ENTRYPOINT ["bootstrap-nginx.sh"]
|
||||
91
images/php/Dockerfile.8.0
Normal file
91
images/php/Dockerfile.8.0
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
FROM php:8.0-fpm
|
||||
MAINTAINER Robin Appelman <robin@icewind.nl>
|
||||
|
||||
RUN DEBIAN_FRONTEND=noninteractive ;\
|
||||
apt-get update && \
|
||||
apt-get install --assume-yes \
|
||||
bzip2 \
|
||||
nginx \
|
||||
libaio-dev \
|
||||
wget \
|
||||
unzip \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# php exceptions
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libpq5 \
|
||||
libpq-dev \
|
||||
libsqlite3-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libmagickwand-dev \
|
||||
libmagickcore-dev \
|
||||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& docker-php-ext-configure gd \
|
||||
--enable-gd \
|
||||
--with-jpeg \
|
||||
--with-freetype \
|
||||
&& mkdir -p /usr/src/php/ext/imagick \
|
||||
&& curl -fsSL https://github.com/Imagick/imagick/archive/06116aa24b76edaf6b1693198f79e6c295eda8a9.tar.gz | tar xvz -C "/usr/src/php/ext/imagick" --strip 1 \
|
||||
&& docker-php-ext-install imagick \
|
||||
&& docker-php-ext-install iconv zip pdo pdo_pgsql pdo_sqlite pgsql pdo_mysql intl curl mbstring gd pcntl ldap \
|
||||
&& pecl install inotify \
|
||||
&& pecl install smbclient \
|
||||
&& apt-get remove -y \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libmcrypt-dev \
|
||||
libpng-dev \
|
||||
libpq-dev \
|
||||
libsqlite3-dev \
|
||||
libcurl4-openssl-dev \
|
||||
libicu-dev \
|
||||
libzip-dev \
|
||||
libmagick-dev \
|
||||
libmagickwand-dev \
|
||||
libmagickcore-dev \
|
||||
libonig-dev \
|
||||
libldap2-dev \
|
||||
libsmbclient-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN pecl install apcu \
|
||||
&& pecl install xdebug \
|
||||
&& pecl install redis \
|
||||
&& export VERSION=`php -r "echo PHP_MAJOR_VERSION.PHP_MINOR_VERSION;"` \
|
||||
&& curl -A "Docker" -o /tmp/blackfire-probe.tar.gz -D - -L -s https://blackfire.io/api/v1/releases/probe/php/linux/amd64/${VERSION} \
|
||||
&& tar zxpf /tmp/blackfire-probe.tar.gz -C /tmp \
|
||||
&& mv /tmp/blackfire-*.so `php -r "echo ini_get('extension_dir');"`/blackfire.so \
|
||||
&& echo "extension=smbclient.so" > $PHP_INI_DIR/conf.d/smbclient.ini \
|
||||
&& echo "extension=inotify.so" > $PHP_INI_DIR/conf.d/inotify.ini \
|
||||
&& echo "extension=blackfire.so\nblackfire.agent_socket=\${BLACKFIRE_PORT}" > $PHP_INI_DIR/conf.d/blackfire.ini \
|
||||
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.mode=debug,trace,profile" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.start_with_request=trigger" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.client_port=9000" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "xdebug.discover_client_host=true" >> $PHP_INI_DIR/conf.d/xdebug.ini \
|
||||
&& echo "memory_limit = 512M" > $PHP_INI_DIR/conf.d/memory_limit.ini
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer
|
||||
|
||||
ADD apcu.ini opcache.ini redis.ini $PHP_INI_DIR/conf.d/
|
||||
|
||||
ADD nginx.conf nginx-app.conf /etc/nginx/
|
||||
|
||||
|
||||
ADD php-fpm.conf /usr/local/etc/
|
||||
ADD index.php /var/www/html/
|
||||
|
||||
ADD bootstrap-nginx.sh /usr/local/bin/
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
ENTRYPOINT ["bootstrap-nginx.sh"]
|
||||
|
|
@ -5,8 +5,8 @@ touch /var/log/nginx/error.log
|
|||
|
||||
tail --follow --retry /var/log/nginx/*.log &
|
||||
|
||||
UID=${UID:-$(id -u)}
|
||||
GID=${GID:-$(id -g)}
|
||||
UID=${UID:-1000}
|
||||
GID=${GID:-1000}
|
||||
|
||||
groupadd -g $GID haze
|
||||
useradd -u $UID -g $GID haze
|
||||
|
|
|
|||
11
images/push.sh
Normal file
11
images/push.sh
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
versions=("7.2" "7.3" "7.4" "8.0")
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
docker push "icewind1991/haze-php:$version"
|
||||
done
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
docker push "icewind1991/haze:$version"
|
||||
done
|
||||
20
src/php.rs
20
src/php.rs
|
|
@ -14,10 +14,10 @@ use tokio::time::{sleep, timeout};
|
|||
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||
#[allow(dead_code)]
|
||||
pub enum PhpVersion {
|
||||
Latest,
|
||||
// Php80,
|
||||
Php80,
|
||||
Php74,
|
||||
// Php73,
|
||||
Php73,
|
||||
Php72,
|
||||
}
|
||||
|
||||
impl FromStr for PhpVersion {
|
||||
|
|
@ -26,7 +26,11 @@ impl FromStr for PhpVersion {
|
|||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||
match s {
|
||||
"7" => Ok(PhpVersion::Php74),
|
||||
"7.2" => Ok(PhpVersion::Php72),
|
||||
"7.3" => Ok(PhpVersion::Php73),
|
||||
"7.4" => Ok(PhpVersion::Php74),
|
||||
"8" => Ok(PhpVersion::Php80),
|
||||
"8.0" => Ok(PhpVersion::Php80),
|
||||
_ => Err(()),
|
||||
}
|
||||
}
|
||||
|
|
@ -36,15 +40,19 @@ impl PhpVersion {
|
|||
fn image(&self) -> &'static str {
|
||||
// for now only 7.4
|
||||
match self {
|
||||
PhpVersion::Latest => "icewind1991/haze:7.4",
|
||||
PhpVersion::Php72 => "icewind1991/haze:7.2",
|
||||
PhpVersion::Php73 => "icewind1991/haze:7.3",
|
||||
PhpVersion::Php74 => "icewind1991/haze:7.4",
|
||||
PhpVersion::Php80 => "icewind1991/haze:8.0",
|
||||
}
|
||||
}
|
||||
|
||||
pub fn name(&self) -> &'static str {
|
||||
match self {
|
||||
PhpVersion::Latest => "7.4",
|
||||
PhpVersion::Php72 => "7.2",
|
||||
PhpVersion::Php73 => "7.3",
|
||||
PhpVersion::Php74 => "7.4",
|
||||
PhpVersion::Php80 => "8.0",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -110,6 +118,6 @@ impl PhpVersion {
|
|||
|
||||
impl Default for PhpVersion {
|
||||
fn default() -> Self {
|
||||
PhpVersion::Latest
|
||||
PhpVersion::Php80
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue