This document Team Password Manager Docker images, which you can use to build Team Password Manager Docker containers:
- Location and naming
- Features
- Environment variables
- How does a Team Password Manager Docker image work
Location and naming
Team Password Manager Docker images are located on our Docker Hub page:
https://hub.docker.com/r/teampasswordmanager/teampasswordmanager/tags
They're named like this, where "tag" corresponds to a Team Password Manager version (starting with v. 7.109.212):
teampasswordmanager/teampasswordmanager:tag
So, for instance, the Docker image for Team Password Manager version 7.118.217 is:
teampasswordmanager/teampasswordmanager:7.118.217
There's also this special image which corresponds to the latest Team Password Manager version available:
teampasswordmanager/teampasswordmanager:latest
For example, to download the Docker image with the latest version of Team Password Manager, you need to execute the following command at the command line:
docker pull teampasswordmanager/teampasswordmanager:latest
We also provide the source code of the image and accompanying files (see the List of Team Password Manager Docker images (tags) document), in case you want to change how the image works or create your own Team Password Manager Docker image.
Features
Team Password Manager Docker images have the following features:
- They're based on Ubuntu Linux.
- The web server is Apache.
- Supported (at the time of release) version of PHP with mod_php.
- Current (at the time of release) version of the SourceGuardian or Ioncube Loader.
- ldaps support.
- https support.
- They expose port 80 for http and port 443 for https.
- They create a volume that targets
/var/www/html/
in the container's file system. - They have a simple system to be upgraded.
Note that in the List of Team Password Manager Docker images (tags) document we list the specific software versions installed in each version/tag.
Environment variables
The following environment variables need to be set to be able to create a container from a Team Password Manager Docker image:
TPM_SERVER_TIMEZONE
Etc/UTC
Sets the server timezone.
You can find all the possible values here: https://manpages.ubuntu.com/manpages/bionic/man3/DateTime::TimeZone::Catalog.3pm.html
TPM_PHP_TIMEZONE
Etc/UTC
Sets the PHP timezone, which should be the same as the server timezone.
You can find all the possible values here: https://www.php.net/manual/en/timezones.php
Database connection parameters:
TPM_ENCRYPT_DB_CONFIG
TPM_CONFIG_HOSTNAME
TPM_CONFIG_PORT
TPM_CONFIG_USERNAME
TPM_CONFIG_PASSWORD
TPM_CONFIG_DATABASE
(none)
These are the variables that will be set (when the container is created) in Team Password Manager's config.php
configuration file so that the software can connect to the database.
They're described here: Team Password Manager database parameters.
They don't have default values and they must all be set:
TPM_ENCRYPT_DB_CONFIG
corresponds to ENCRYPT_DB_CONFIG
TPM_CONFIG_HOSTNAME
corresponds to CONFIG_HOSTNAME
TPM_CONFIG_PORT
corresponds to CONFIG_PORT
TPM_CONFIG_USERNAME
corresponds to CONFIG_USERNAME
TPM_CONFIG_PASSWORD
corresponds to CONFIG_PASSWORD
TPM_CONFIG_DATABASE
corresponds to CONFIG_DATABASE
TPM_UPGRADE
0
Possible values: 0 (default) or 1.
If set to 1, the system will replace the Team Password Manager files (to upgrade the installation) if the container is created with an existing volume that contains a Team Password Manager installation. It replaces the index.php file and the wmm, system and css folders. Note that this will happen only the first time the container runs.
See also the next section How does a Team Password Manager Docker image work and the Upgrading with Docker document.
How does a Team Password Manager Docker image work
This section describes how a Team Password Manager Docker image works when creating a container.
Situation 1: no volume (or a named non-existent one) is provided
For example, when creating a container like this:
docker run -d -p 8080:80 -p 8443:443 --env-file=env_vars teampasswordmanager/teampasswordmanager:latest
or like this (where tpm_volume
does not exist):
docker run -d -p 8080:80 -p 8443:443 --env-file=env_vars -v tpm_volume:/var/www/html teampasswordmanager/teampasswordmanager:latest
The following happens when you create a container this way:
- A volume is created in the host system targeting the
/var/www/html/
folder in the container. - The following folders are created in the
/var/www/html/
folder in the container:
•site
=> Team Password Manager files
•logs
=> Apache logs
•ssl
=> Certificate files for https - The Team Password Manager files are copied to
/var/www/html/site/
. /var/www/html/site/config.php
(the Team Password Manager configuration file) is filled in with the database parameters from the environment variables.- A self signed certificate is copied to
/var/www/html/ssl/
. - Apache is started.
Situation 2: a volume with a Team Password Manager installation is provided
If you destroy a container created with a Team Password Manager Docker image, the volume targeting /var/www/html/ is preserved in the host system. You can then create another container using this volume to upgrade the installation or just use the same one.
For example, when creating a container like this (where tpm_volume
is an existing volume with a Team Password Manager installation):
docker run -d -p 8080:80 -p 8443:443 --env-file=env_vars -v tpm_volume:/var/www/html teampasswordmanager/teampasswordmanager:latest
The following happens when you create a container this way:
- The system checks if there really is a Team Password Manager installation. If not, it copies the Team Password Manager files to
/var/www/html/site/
and fills inconfig.php
. Thelogs
andssl
folders are verified too. - If there's a Team Password Manager installation:
- IfTPM_UPGRADE
is 1, the existing Team Password Manager files and folders are replaced with the ones in the image. Not all files and folders are replaced, only those that are specific to the new version, which are: index.php, wmm, system and css. This way the configuration inconfig.php
is kept intact. This is how upgrades are done with the Docker image, a process that is explained in detail in the Upgrading with Docker document.
- IfTPM_UPGRADE
is 0, no files are replaced. The installation is left as is. - Apache is started.
Document changelog
Nov 18, 2020: | Document created |