Compare commits

..
13 Commits
13 changed files with 63 additions and 1967 deletions
+2 -2
View File
@@ -12,11 +12,11 @@ python:
env:
matrix:
- DB=mysql:latest
- DB=mariadb:latest
- DB=mariadb:10.2
before_install:
- export TESTSUITE_PASSWORD=`openssl rand -base64 30`
- docker run --name db_server -e MYSQL_ROOT_PASSWORD=$TESTSUITE_PASSWORD -d $DB
- docker run --name db_server -e MYSQL_ROOT_PASSWORD=$TESTSUITE_PASSWORD -v $PWD/testing/testing.cnf:/etc/mysql/conf.d/testing.cnf:ro -d $DB
install:
- pip install mechanize html5lib
+20 -21
View File
@@ -28,16 +28,9 @@ RUN set -ex; \
apk add --virtual .phpmyadmin-phpexts-rundeps $runDeps; \
apk del .build-deps
# Copy configuration
COPY etc /etc/
# Copy main script
COPY run.sh /run.sh
RUN chmod u+rwx /run.sh
# Calculate download URL
ENV VERSION 4.8.1
ENV URL https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz
ENV VERSION 4.8.3
ENV URL https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.xz
LABEL version=$VERSION
# Download tarball, verify it using gpg and extract
@@ -48,32 +41,38 @@ RUN set -ex; \
\
export GNUPGHOME="$(mktemp -d)"; \
export GPGKEY="3D06A59ECE730EB71B511C17CE752F178259BD92"; \
curl --output phpMyAdmin.tar.gz --location $URL; \
curl --output phpMyAdmin.tar.gz.asc --location $URL.asc; \
curl --output phpMyAdmin.tar.xz --location $URL; \
curl --output phpMyAdmin.tar.xz.asc --location $URL.asc; \
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$GPGKEY" \
|| gpg --keyserver ipv4.pool.sks-keyservers.net --recv-keys "$GPGKEY" \
|| gpg --keyserver keys.gnupg.net --recv-keys "$GPGKEY" \
|| gpg --keyserver pgp.mit.edu --recv-keys "$GPGKEY" \
|| gpg --keyserver keyserver.pgp.com --recv-keys "$GPGKEY"; \
gpg --batch --verify phpMyAdmin.tar.gz.asc phpMyAdmin.tar.gz; \
rm -rf "$GNUPGHOME"; \
tar xzf phpMyAdmin.tar.gz; \
rm -f phpMyAdmin.tar.gz phpMyAdmin.tar.gz.asc; \
gpg --batch --verify phpMyAdmin.tar.xz.asc phpMyAdmin.tar.xz; \
tar -xf phpMyAdmin.tar.xz; \
gpgconf --kill all; \
rm -r "$GNUPGHOME" phpMyAdmin.tar.xz phpMyAdmin.tar.xz.asc; \
mv phpMyAdmin-$VERSION-all-languages /www; \
rm -rf /www/setup/ /www/examples/ /www/test/ /www/po/ /www/composer.json /www/RELEASE-DATE-$VERSION; \
sed -i "s@define('CONFIG_DIR'.*@define('CONFIG_DIR', '/etc/phpmyadmin/');@" /www/libraries/vendor_config.php; \
chown -R root:nobody /www; \
chown -R nobody:nogroup /www; \
find /www -type d -exec chmod 750 {} \; ; \
find /www -type f -exec chmod 640 {} \; ; \
# Add directory for sessions to allow session persistence
mkdir /sessions; \
mkdir -p /www/tmp; \
chmod -R 777 /www/tmp; \
apk del .fetch-deps
# Add directory for sessions to allow session persistence
RUN mkdir /sessions \
&& mkdir -p /www/tmp \
&& chmod -R 777 /www/tmp
# Copy configuration
COPY etc /etc/
COPY php.ini /usr/local/etc/php/conf.d/php-phpmyadmin.ini
# Copy main script
COPY run.sh /run.sh
# We expose phpMyAdmin on port 80
EXPOSE 80
ENTRYPOINT [ "/run.sh" ]
CMD ["phpmyadmin"]
CMD ["supervisord", "-n"]
+5 -10
View File
@@ -1,17 +1,13 @@
version: '2'
services:
mariadb:
image: mariadb:latest
db_server:
image: ${DB}
container_name: phpmyadmin_testing_mariadb
environment:
- MYSQL_ROOT_PASSWORD=test123
mysql:
image: mysql:latest
container_name: phpmyadmin_testing_mysql
environment:
- MYSQL_ROOT_PASSWORD=test123
volumes:
- ./testing/testing.cnf:/etc/mysql/conf.d/testing.cnf:ro
phpmyadmin:
build:
@@ -25,5 +21,4 @@ services:
- PMA_ARBITRARY=1
- TESTSUITE_PASSWORD=test123
depends_on:
- mariadb
- mysql
- db_server
+1 -1
View File
@@ -1,4 +1,4 @@
user nobody;
user nobody nogroup;
worker_processes 4;
daemon off;
+1 -1
View File
@@ -4,7 +4,7 @@ log_level = warning
[www]
user = nobody
group = nobody
group = nogroup
listen = /var/run/php/php-fpm.sock
listen.mode = 0660
chdir = /www
-1918
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,5 +1,5 @@
[program:php-fpm]
command=php-fpm --nodaemonize --fpm-config /etc/php-fpm.conf -c /etc/php.ini
command=php-fpm --nodaemonize --fpm-config /etc/php-fpm.conf
user=nobody
autostart=true
autorestart=true
+20
View File
@@ -0,0 +1,20 @@
[PHP]
allow_url_fopen = Off
max_execution_time = 600
memory_limit = 512M
open_basedir = /www/:/tmp/:/etc/phpmyadmin/
post_max_size = 512M
upload_max_filesize = 512M
[Session]
session.cookie_httponly = 1
session.hash_function = 1
session.save_path = "/sessions"
session.use_strict_mode = 1
[opcache]
opcache.fast_shutdown = 1
opcache.restrict_api = /disabled/
opcache.save_comments = 0
opcache.use_cwd = 0
opcache.validate_timestamps = 0
+7 -9
View File
@@ -1,22 +1,20 @@
#!/bin/sh
if [ ! -f /etc/phpmyadmin/config.secret.inc.php ] ; then
if [ ! -f /etc/phpmyadmin/config.secret.inc.php ]; then
cat > /etc/phpmyadmin/config.secret.inc.php <<EOT
<?php
\$cfg['blowfish_secret'] = '$(tr -dc 'a-zA-Z0-9~!@#$%^&*_()+}{?></";.,[]=-' < /dev/urandom | fold -w 32 | head -n 1)';
EOT
fi
if [ ! -f /etc/phpmyadmin/config.user.inc.php ] ; then
touch /etc/phpmyadmin/config.user.inc.php
if [ ! -f /etc/phpmyadmin/config.user.inc.php ]; then
touch /etc/phpmyadmin/config.user.inc.php
fi
mkdir -p /var/nginx/client_body_temp
chown nobody:nobody /sessions /var/nginx/client_body_temp
chown nobody:nogroup /sessions /var/nginx/client_body_temp
mkdir -p /var/run/php/
chown nobody:nobody /var/run/php/
chown nobody:nogroup /var/run/php/
touch /var/log/php-fpm.log
chown nobody:nobody /var/log/php-fpm.log
chown nobody:nogroup /var/log/php-fpm.log
if [ "$1" = 'phpmyadmin' ]; then
exec supervisord --nodaemon --configuration="/etc/supervisord.conf" --loglevel=info
fi
exec "$@"
+1 -1
View File
@@ -6,5 +6,5 @@ FROM phpmyadmin/phpmyadmin
RUN apk add --no-cache curl py2-pip
RUN pip install mechanize html5lib
COPY test-mariadb.ini test-mysql.ini /etc/supervisor.d/
COPY test.ini /etc/supervisor.d/
COPY phpmyadmin_test.py test-docker.sh world.sql /
+1 -1
View File
@@ -1,5 +1,5 @@
[program:test-mysql]
command=/test-docker.sh test 80 mysql
command=/test-docker.sh test 80 db_server
autostart=true
autorestart=false
priority=3
+2
View File
@@ -0,0 +1,2 @@
[mysqld]
default_authentication_plugin = mysql_native_password
+2 -2
View File
@@ -11,7 +11,7 @@ TIMEOUT=0
sleep 5
while [ `docker-compose -f docker-compose.testing.yml logs phpmyadmin | grep -c 'Result of \(mysql\|mariadb\) tests'` -lt 2 ] ; do
while [ `docker-compose -f docker-compose.testing.yml logs phpmyadmin | grep -c 'Result of db_server tests'` -lt 1 ] ; do
sleep 1
TIMEOUT=$(($TIMEOUT + 1))
if [ $TIMEOUT -gt 20 ] ; then
@@ -21,7 +21,7 @@ while [ `docker-compose -f docker-compose.testing.yml logs phpmyadmin | grep -c
fi
done
if [ `docker-compose -f docker-compose.testing.yml logs phpmyadmin | grep -c 'Result of \(mysql\|mariadb\) tests.*SUCCESS'` -lt 2 ] ; then
if [ `docker-compose -f docker-compose.testing.yml logs phpmyadmin | grep -c 'Result of db_server tests.*SUCCESS'` -lt 1 ] ; then
docker-compose -f docker-compose.testing.yml logs phpmyadmin
echo "${RED}Failed${NC}"
exit 2