Skip to content

Latest commit

 

History

History
148 lines (101 loc) · 4.96 KB

README.md

File metadata and controls

148 lines (101 loc) · 4.96 KB

docker-jira

A Docker image for Jira.

Features

  • Runs on a production ready OpenJDK 8 - Zulu by Azul Systems.
  • Ready to be configured with Nginx as a reverse proxy (https available).
  • Built on top of Debian for a minimal image size.

Usage

docker run -d -p 8080:8080 ahaasler/jira

Parameters

You can use this parameters to configure your jira instance:

  • -s: Enables the connector security and sets https as connector scheme.
  • -n <proxyName>: Sets the connector proxy name.
  • -p <proxyPort>: Sets the connector proxy port.
  • -c <contextPath>: Sets the context path (do not write the initial /).

This parameters should be given to the entrypoint (passing them after the image):

docker run -d -p 8080:8080 ahaasler/jira <parameters>

If you want to execute another command instead of launching jira you should overwrite the entrypoint with --entrypoint <command> (docker run parameter).

Nginx as reverse proxy

Lets say you have the following nginx configuration for jira:

server {
	listen                          80;
	server_name                     example.com;
	return                          301 https://$host$request_uri;
}
server {
	listen                          443;
	server_name                     example.com;

	ssl                             on;
	ssl_certificate                 /path/to/certificate.crt;
	ssl_certificate_key             /path/to/key.key;
	location /jira {
		proxy_set_header X-Forwarded-Host $host;
		proxy_set_header X-Forwarded-Server $host;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_pass http://127.0.0.1:8080;
		proxy_redirect off;
	}
}

This is only an example, please secure you nginx better.

For that configuration you should run your jira container with:

docker run -d -p 8080:8080 ahaasler/jira -s -n example.com -p 443 -c jira

Persistent data

The jira home is set to /data/jira. If you want to persist your data you should use a data volume for /data/jira.

Binding a host directory

docker run -d -p 8080:8080 -v /home/user/jira-data:/data/jira ahaasler/jira

Make sure that the jira user (with id 547) has read/write/execute permissions.

If security is important follow the Atlassian recommendation:

Ensure that only the user running Jira can access the Jira home directory, and that this user has read, write and execute permissions, by setting file system permissions appropriately for your operating system.

Using a data-only container

  1. Create the data-only container and set proper permissions:

docker run --name jira-data ahaasler/jira-data ```

* *I-wan't-to-know-what-I'm-doing* way:

	```bash

docker run --name jira-data -v /data/jira busybox true docker run --rm -it --volumes-from jira-data debian bash ```

	The last command will open a *debian* container. Execute this inside that container:

	```bash

chown 547:root /data/jira; chmod 770 /data/jira; exit; ```

  1. Use it in the jira container:

docker run --name jira --volumes-from jira-data -d -p 8080:8080 ahaasler/jira ```

PostgreSQL external database

A great way to connect your Jira instance with a PostgreSQL database is using the docker-jira-postgres image.

  1. Create and name the database container:

docker run --name jira-postgres -d ahaasler/jira-postgres ```

  1. Use it in the Jira container:

docker run --name jira --link jira-postgres:jira-postgres -d -p 8080:8080 ahaasler/jira ```

  1. Connect your Jira instance following the Atlassian documentation: Configure your JIRA server to connect to your PostgreSQL database.

See docker-jira-postgres for more information and configuration options.

Thanks

  • Docker for this amazing container engine.
  • PostgreSQL for this advanced database.
  • Atlassian for making great products. Also for their work on atlassian-docker which inspired this.
  • Azul Systems for their OpenJDK docker base image.
  • And specially to you and the entire community.

License

This image is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.