skip to Main Content

i have a docker-compose.yml that looks like this:

webserver:
  build: ./_docker/php
  ports:
    - 80:80
  links:
    - mysql
  volumes_from:
    - app

mysql:
  image: mysql:5.7
  environment:
    MYSQL_DATABASE: "${DB_NAME}"
    MYSQL_USER: "${DB_USER}"
    MYSQL_ROOT_PASSWORD: "${DB_ROOT_PW}"
    MYSQL_PASSWORD: "${DB_PW}"
  volumes:
    - ./_docker/data/db:/docker-entrypoint-initdb.d
  volumes_from:
    - data

data:
  image: mysql:5.7
  volumes:
    - /var/lib/mysql
  command: "true"

phpmyadmin:
  image: phpmyadmin/phpmyadmin
  ports:
    - 8080:80
  links:
    - mysql
  environment:
    PMA_HOST: mysql

app:
  image: tianon/true
  volumes:
    - .:/var/www/public_html

Dockerfile looks like this:

FROM php:7.0-apache
#php:7.2.2-apache
#php:5.6.33-apache

COPY php.ini /usr/local/etc/php/

COPY 000-default.conf /etc/apache2/sites-available/

RUN a2enmod rewrite
RUN a2enmod expires
RUN a2enmod headers

RUN apt-get update
RUN apt-get install -y zlib1g-dev libxml2-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12.0 imagemagick
RUN docker-php-ext-install mysqli zip soap
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install gd

# Install opcache
RUN docker-php-ext-install opcache

and the php ini like this:

max_input_vars = 1500
max_execution_time = 300
post_max_size=50M
upload_max_filesize=50M

when i start the container i have my webserver located on http://localhost.

i put an index.php with a phpinfo(); inside it and it shows, that the php.ini works.

When i open http://localhost:8080 and login to PMA it shows me that my upload limit i set to 2048KiB.

Where can i change this?

Thanks in advance!

8

Answers


  1. In my case I couldn’t fix it with UPLOAD_LIMIT, so without further debugging I needed a quick solution even if it’s temporary:

    1. open phpmyadmin container terminal: docker exec -it container_name bash

    2. If you don’t have vim or nano editor install one: apt-get update, apt-get install vim

    3. create config file: vi /usr/local/php/conf.d/myconf.ini
    4. with this content: post_max_size=50M upload_max_filesize=50M

    5. restart container

    Remember these changes will be gone when container is recreated, it’s just a temporary solution. Try working with UPLOAD_LIMIT as suggested in previous answer.

    UPDATE
    Tried again with setting upload_limit environment, but still without luck, so found another solution:
    created a file say uploads.ini with this content:

    post_max_size=50M 
    upload_max_filesize=50M
    

    and link it to container volume :

      phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links: 
          - mysql:db
        ports:
          - 8084:80
        volumes:
          - ./uploads.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
        environment:
          MYSQL_ROOT_PASSWORD: something
          #UPLOAD_LIMIT: 3000000000 <-- didn't work
    
    Login or Signup to reply.
  2. Use like this UPLOAD_LIMIT env in docker. This is from my docker-compose.yml. Default value for UPLOAD_LIMIT is 2048K which is 2048KiB. Setting value to 300M increases it to 300MiB.

    Reference: https://github.com/phpmyadmin/docker#environment-variables-summary

     phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: 'php7.3-phpmyadmin'
        restart: 'always'
        links:
          - mysql
        environment:
          PMA_HOST: mysql
          PMA_PORT: 3306
          UPLOAD_LIMIT: 300M
        ports:
          - '8082:80'
        volumes:
          - /sessions
    
    Login or Signup to reply.
  3. the following worked very well.
    My docker-compose.yml contains this:

      phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: some-name
        env_file:
          - phpmyadmin.env
        depends_on:
          - mariadb
        volumes:
    

    The following entry was added to the phpmyadmin.env: UPLOAD_LIMIT=256MB
    The larger number (Maximal: 256MiB) showed up right after the container was brought down and was back up again.

    Login or Signup to reply.
  4. you need to use UPLOAD_LIMIT inside enviroment, and you need to specify values with = sign, like example: UPLOAD_LIMIT=300M

    version: '3.1'
    services:
      db:
        image: mysql
        command: --default-authentication-plugin=mysql_native_password
        restart: always
        environment:
          MYSQL_ROOT_PASSWORD: somerandompasswordgenerated
        ports:
          - 3306:3306
    
      phpmyadmin:
        image: phpmyadmin
        restart: always
        ports:
          - 8080:80
        environment:
          - PMA_ARBITRARY=1
          - UPLOAD_LIMIT=300M
    
    Login or Signup to reply.
  5. If you want to install from phpmyadmin docker image and with docker run, you can exec this.

    docker run –name your-image-name -d –link mysql-docker:db –env "UPLOAD_LIMIT=256M" phpmyadmin

    This works for me and enable upload to 256MB SQL file.

    Login or Signup to reply.
  6. UPLOAD_LIMIT: 500M

    mariadb:
        image: mariadb:latest
        container_name: w-mariadb
        restart: always
        ports:
          - "3307:3306"
        environment:
          MYSQL_DATABASE: db_name
          MYSQL_USER: root
          MYSQL_PASSWORD: db_password
          MYSQL_ROOT_PASSWORD: db_password
        volumes:
          - 'w-mariadb:/var/lib/mysql'
        networks:
          - w-network
      phpmyadmin:
        image: phpmyadmin/phpmyadmin
        container_name: w-phpmyadmin
        links:
          - mariadb
        environment:
          MYSQL_ROOT_PASSWORD: db_password
          PMA_HOST: mariadb
          UPLOAD_LIMIT: 500M
        restart: always
        ports:
          - '8383:80'
        networks:
          - w-network
    
    Login or Signup to reply.
  7. I edit this file :

    /usr/local/etc/php/conf.d/phpmyadmin-misc.ini
    

    and set new values :

    post_max_size=64M
    upload_max_filesize=64M
    

    It works fine.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search