This docker container provides a JIRA installation. As far as possible it's configurable through environment variables. The initialization and setup scripts are largely inspired by the superb gitlab container from sameersbn.
Current Jira version: 6.4
Current MySQL Driver Version: 5.1.34
Hardware and Software Requirements
These are the official hardware and software requirements by Atlassian. They apply to the current version, but you should be fine running any of the older versions on this hardware.
|Chrome||Latest stable version supported|
|Microsoft Internet Explorer||9.0, 10.0, 11.0||'Compatibility View' is not supported|
|Mozilla Firefox||Latest stable version supported|
|Safari||Latest stable version supported on Mac OS X only|
|Mobile Safari||iOS, iPod touch and iPhone only --- Latest stable version|
|Android||The default browser on Android 4.0.3 (Ice Cream Sandwich)|
The correct Java version is already included in the container. Currently it runs on Java 1.8.0_40.
Jira runs on Apache Tomcat.
Jira supports most popular relational database servers. However, this container only supports MySQL. If you would like to run this container using any other database server, please let us know, so we might add the feature.
The hardware required to run Jira depends on a number of different JIRA configurations (eg. projects, issues, custom fields, permissions, etc.) as well as the maximum number of concurrent requests that the system will experience during peak hours. See the Jira Sizing Guide for more information.
At an absolute minimum you will need:
- Dual Core CPU
- 8GB RAM
- 10GB Disk Space
To quickly run Jira using a MySQL Docker container run these commands:
sudo docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=pw mysql
sudo docker exec -i -t mysql /bin/bash
This will start a MySQL container and a bash terminal within. Now we can create the database scheme for Jira:
mysql -u root -ppw
create database jira;
Now we can run Jira. /opt/jira-home will be linked to a docker volume. In order for Jira to be able to write to that directory, we need to change the ownership accordingly. The easiest way to do this is with a jira-data container. Jira is - by default - run as the jira user with UID:GID 5000:5000.
The Jira container will be linked to the MySQL container. Jira will automatically detect this linked container and configure the database connection accordingly:
sudo docker run -d -v /opt/jira-home --name jira-data busybox chown -R 5000:5000 /opt/jira-home
sudo docker run -p 8080:8080 -d --name jira --volumes-from jira-data --link mysql:mysql -e "DB_USER=root" -e "DB_PASS=pw" -e "DB_NAME=jira" inftec/jira
After about 1 minute you should be able to access and configure Jira on http://localhost:8080
The following features can be configured through the use of environment variables.
Jira stores it's information in /opt/jira-home. You should mount a volume from the host or another docker container (see example in Quickstart Guide above). It is recommended to backup the content of this volume on a regular basis.
Volumes can be mounted to a docker container with the -v (directory in host) or the --volumes-from (volume in another docker container) option.
Jira stores most of it's data in a database. Current this container only supports MySQL as database backend.
External MySQL Server
The connection to an external database server can be configured using the following environmental variables:
|DB_TYPE||One of: mysql||mysql|
|DB_HOST||Hostname or IP Address of the database server||localhost, 123.456.78.9|
|DB_PORT||Port on which the database server listens||3306|
|DB_NAME||Name of the database for Jira||jira_production||jira_production|
|DB_USER||User with which to connect to the database||jira||jira|
|DB_PASS||Password for the user DB_USER||some_very_secret_value|
|DB_POOL||Number of database connections to open||20||30|
Linked MySQL Container
If the container detects a linked mysql container with name "mysql" it will use that database connection. The variables DB_TYPE, DB_HOST and DB_PORT will be set to the corresponding values. MySQL needs to run on the default MySQL port 3306 in the linked container.
The UID and GID of the user jira can be configured through USERMAP_UID und USERMAP_GID.
The container supports the use of SSL and non SSL reverse proxies. When configuring a reverse proxy, both name and port are required. It is invalid to provide both SSL and non SSL proxy configuration. The context path of the reverse proxy may only be provided if a reverse proxy was configured. The context path variable is optional.
The reverse proxy name should be the FQDN of Jira's base url.
SSL reverse proxy can be configured with SSL_REVERSE_PROXY_NAME and SSL_REVERSE_PROXY_PORT
For example, if your Jira installation is reachable through https://example.com:8443/jira the variables should be set to:
Non SSL reverse proxy can be configured with REVERSE_PROXY_NAME and REVERSE_PROXY_PORT
For example, if your Jira installation is reachable through http://example.com:8080/jira the variables should be set to:
The context path of the reverse proxy can be configured with REVERSE_PROXY_CONTEXT_PATH. It should start with a
In the examples above, REVERSE_PROXY_CONTEXT_PATH should be set to
- DB_TYPE: The database type. Possible values:
- DB_HOST: The database server hostname or IP address
- DB_PORT: The database server port
- DB_NAME: The database name. Defaults to
- DB_USER: The database user. Defaults to
- DB_PASS: The database user's password
- DB_POOL: The size of the database connection pool. Defaults to 20
- USERMAP_UID: The UID of the user jira. Defaults to 5000
- USERMAP_GID: The GID of the user jira. Defaults to 5000
- SSL_REVERSE_PROXY_NAME: The FQDN of the reverse proxy
- SSL_REVERSE_PROXY_PORT: The port on which the reverse proxy accepts connections for Jira
- REVERSE_PROXY_NAME: The FQDN of the reverse proxy
- REVERSE_PROXY_PORT: The port on which the reverse proxy accepts connections for Jira
- REVERSE_PROXY_CONTEXT_PATH: The context path of Jira's base URL
- JIRA_MAX_HEAP_SIZE: The maximum heap size Java will allocate for Jira. Defaults to 768m. Should be increased for large instances.
- JIRA_PLUGINS_ENABLE_WAIT: The time Jira waits for plugins to be initialized. Defaults to 60 (seconds). Should be increased for large instances or installations with many plugins.