mirror of
https://github.com/phpmyadmin/docker.git
synced 2026-08-30 02:34:13 -05:00
Pull-request: #259 Signed-off-by: William Desportes <williamdes@wdes.fr>
153 lines
6.8 KiB
Markdown
153 lines
6.8 KiB
Markdown
# Official phpMyAdmin Docker image
|
|
|
|
Run phpMyAdmin with Alpine, Apache and PHP FPM.
|
|
|
|
[](https://travis-ci.org/phpmyadmin/docker)
|
|
[][hub]
|
|
[][hub]
|
|
[](https://microbadger.com/images/phpmyadmin/phpmyadmin "Get your own image badge on microbadger.com")
|
|
[](https://microbadger.com/images/phpmyadmin/phpmyadmin "Get your own version badge on microbadger.com")
|
|
|
|
|
|
All following examples will bring you phpMyAdmin on `http://localhost:8080`
|
|
where you can enjoy your happy MySQL administration.
|
|
|
|
## Credentials
|
|
|
|
phpMyAdmin does use MySQL server credential, please check the corresponding
|
|
server image for information how it is setup.
|
|
|
|
The official MySQL and MariaDB use following environment variables to define these:
|
|
|
|
* `MYSQL_ROOT_PASSWORD` - This variable is mandatory and specifies the password that will be set for the `root` superuser account.
|
|
* `MYSQL_USER`, `MYSQL_PASSWORD` - These variables are optional, used in conjunction to create a new user and to set that user's password.
|
|
|
|
## Supported Docker hub tags
|
|
|
|
The following tags are available:
|
|
|
|
* `latest`, `fpm`, and `fpm-alpine` are always the most recent released version
|
|
* Major versions, such as `5`, `5-fpm`, and `5-fpm-alpine`
|
|
* Specific minor versions, such as `5.0`, `5.0-fpm`, and `5-fpm-alpine`
|
|
* Specific patch versions, such as `5.0.0`, `5.0.0-fpm`, and `5.0.0-alpine`. Note that, on rare occasion,
|
|
there may be an intermediary "docker-only" release, such as 4.9.2-1
|
|
* `edge`, `edge-fpm`, `edge-fpm-alpine`, a development version build from the daily snapshot
|
|
|
|
A complete list of tags is [available at Docker Hub](https://hub.docker.com/r/phpmyadmin/phpmyadmin/tags)
|
|
|
|
## Image variants
|
|
|
|
We provide three variations:
|
|
|
|
* "apache" includes a full Apache webserver with PHP and includes everything needed to work out of the box.
|
|
This is the default when only a version number is requested.
|
|
* "fpm" only starts a PHP FPM container. Use this variant if you already have a seperate webserver.
|
|
This includes more tools and is therefore a larger image than the "fpm-alpine" variation.
|
|
* "fpm-alpine" has a very small footprint. It is based on Alpine Linux and only starts a PHP FPM process.
|
|
Use this variant if you already have a seperate webserver. If you need more tools that are not available on Alpine Linux, use the fpm image instead.
|
|
|
|
## Usage with linked server
|
|
|
|
First you need to run MySQL or MariaDB server in Docker, and this image need
|
|
link a running mysql instance container:
|
|
|
|
```
|
|
docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 phpmyadmin/phpmyadmin
|
|
```
|
|
|
|
## Usage with external server
|
|
|
|
You can specify MySQL host in the `PMA_HOST` environment variable. You can also
|
|
use `PMA_PORT` to specify port of the server in case it's not the default one:
|
|
|
|
```
|
|
docker run --name myadmin -d -e PMA_HOST=dbhost -p 8080:80 phpmyadmin/phpmyadmin
|
|
```
|
|
|
|
## Usage with arbitrary server
|
|
|
|
You can use arbitrary servers by adding ENV variable `PMA_ARBITRARY=1` to the startup command:
|
|
|
|
```
|
|
docker run --name myadmin -d -e PMA_ARBITRARY=1 -p 8080:80 phpmyadmin/phpmyadmin
|
|
```
|
|
|
|
## Usage with docker-compose and arbitrary server
|
|
|
|
This will run phpMyAdmin with arbitrary server - allowing you to specify MySQL/MariaDB
|
|
server on login page.
|
|
|
|
Using the docker-compose.yml from https://github.com/phpmyadmin/docker
|
|
|
|
```
|
|
docker-compose up -d
|
|
```
|
|
|
|
## Run the E2E tests with docker-compose
|
|
|
|
You can run the E2E tests with the local test environment by running MariaDB/MySQL databases. Adding ENV variable `PHPMYADMIN_RUN_TEST=true` already added on docker-compose file. Simply run:
|
|
|
|
Using the docker-compose.testing.yml from https://github.com/phpmyadmin/docker
|
|
|
|
```
|
|
docker-compose -f docker-compose.testing.yml up phpmyadmin
|
|
```
|
|
|
|
## Adding Custom Configuration
|
|
|
|
You can add your own custom config.inc.php settings (such as Configuration Storage setup)
|
|
by creating a file named "config.user.inc.php" with the various user defined settings
|
|
in it, and then linking it into the container using:
|
|
|
|
```
|
|
-v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php
|
|
```
|
|
On the "docker run" line like this:
|
|
```
|
|
docker run --name myadmin -d --link mysql_db_server:db -p 8080:80 -v /some/local/directory/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin/phpmyadmin
|
|
```
|
|
|
|
See the following links for config file information.
|
|
https://docs.phpmyadmin.net/en/latest/config.html#config
|
|
https://docs.phpmyadmin.net/en/latest/setup.html
|
|
|
|
## Usage behind reverse proxys
|
|
|
|
Set the variable ``PMA_ABSOLUTE_URI`` to the fully-qualified path (``https://pma.example.net/``) where the reverse proxy makes phpMyAdmin available.
|
|
|
|
## Environment variables summary
|
|
|
|
* ``PMA_ARBITRARY`` - when set to 1 connection to the arbitrary server will be allowed
|
|
* ``PMA_HOST`` - define address/host name of the MySQL server
|
|
* ``PMA_VERBOSE`` - define verbose name of the MySQL server
|
|
* ``PMA_PORT`` - define port of the MySQL server
|
|
* ``PMA_HOSTS`` - define comma separated list of address/host names of the MySQL servers
|
|
* ``PMA_VERBOSES`` - define comma separated list of verbose names of the MySQL servers
|
|
* ``PMA_PORTS`` - define comma separated list of ports of the MySQL servers
|
|
* ``PMA_USER`` and ``PMA_PASSWORD`` - define username to use for config authentication method
|
|
* ``PMA_ABSOLUTE_URI`` - define user-facing URI
|
|
* ``HIDE_PHP_VERSION`` - if defined, will hide the php version (`expose_php = Off`). Set to any value (such as HIDE_PHP_VERSION=true).
|
|
* ``UPLOAD_LIMIT`` - if set, will override the default value for apache and php-fpm (default value is 2048 kb)
|
|
* ``PMA_CONFIG_BASE64`` - if set, will override the default config.inc.php with the base64 decoded contents of the variable
|
|
* ``PMA_USER_CONFIG_BASE64`` - if set, will override the default config.user.inc.php with the base64 decoded contents of the variable
|
|
|
|
For usage with Docker secrets, appending ``_FILE`` to the ``PMA_PASSWORD`` environment variable is allowed (it overrides ``PMA_PASSWORD`` if it is set):
|
|
```
|
|
docker run --name myadmin -d -e PMA_PASSWORD_FILE=/run/secrets/db_password.txt -p 8080:80 phpmyadmin/phpmyadmin
|
|
```
|
|
|
|
#### Variables that can be read from a file using ``_FILE``
|
|
- PMA_PASSWORD
|
|
- MYSQL_ROOT_PASSWORD
|
|
- MYSQL_PASSWORD
|
|
- PMA_HOSTS
|
|
- PMA_HOST
|
|
|
|
For more detailed documentation see https://docs.phpmyadmin.net/en/latest/setup.html#installing-using-docker
|
|
|
|
[hub]: https://hub.docker.com/r/phpmyadmin/phpmyadmin/
|
|
|
|
Please report any issues with the Docker container to https://github.com/phpmyadmin/docker/issues
|
|
|
|
Please report any issues with phpMyAdmin to https://github.com/phpmyadmin/phpmyadmin/issues
|