This is a fork of jacksoncage's phppgadmin that has been fixed by arymkus and einfallstoll.
Apache and Postgres will make of the following environment variables.
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DEFAULTDB=defaultdb
POSTGRES_DEFAULTUSER=someuser
POSTRGES_DEFAULTPASSWORD=somepassword
APACHE_SERVERNAME=localhost
APACHE_SERVERADMIN=admin@localhost
APACHE_DOCUMENTROOT=/var/www
APACHE_RUN_USER=www-data
APACHE_RUN_GROUP=www-data
APACHE_LOG_DIR=/var/web/log/apache2
APACHE_PID_FILE=/var/run/apache2.pid
APACHE_RUN_DIR=/var/run/apache2
APACHE_LOCK_DIR=/var/lock/apache2
The pre built image can be downloaded using docker directly. After that you do not need to use this command again, you will have the image on your machine.
$ docker pull einfallstoll/phppgadmin
If you prefer you can easily build the docker image by yourself. After this the image is ready for use on your machine and can be used for multiple starts.
$ cd phppgadmin-docker
$ docker build -t einfallstoll/phppgadmin .
The container has all pre requisites set up to run phpPgAdmin. Specify all needed environment variables.
$ docker run -i -d -p 80 -e APACHE_SERVERNAME=docker.local -e POSTGRES_HOST=localhost -e POSTGRES_PORT=5432 -v /etc/localtime:/etc/localtime einfallstoll/phppgadmin
Trying the browser on url http://localhost/phppgadmin.
The command above starts the container in deamon mode (-d) and runs in the background. If you want to start it by yourself just to see what happens use this command:
$ docker run -i -t -p 80 -e APACHE_SERVERNAME=docker.local -e POSTGRES_HOST=localhost -e POSTGRES_PORT=5432 einfallstoll/phppgadmin bash
Notice the two changes made here, first we replaced the deamon switch (-d) with the tty switch (-t) which pipes the std in and std out to your terminal.
You now end up as a root user in the docker container and can do simple things like ls, cd and more. More complex things can be achieved after a apt-get install
of one or more software(s) of choice.
The first command inspects your created container and get the IPv4 address. Second command docker exported port for 8080.
$ docker inspect <container_id> | grep IPAddress | cut -d '"' -f 4
$ docker port <container_id> 80 | cut -d ":" -f2
Now go to <your container's ip>:<container's port>
in your browser
Stopping a running container is possible via the docker api. If only one instance of this container is running this command will stop it:
$ docker stop `docker ps | grep einfallstoll/phppgadmin | cut -d\ -f1`