initial commit

This commit is contained in:
Alexander Thurn 2019-01-11 18:16:27 +01:00
parent b9c557a65c
commit 685486015b
3 changed files with 157 additions and 0 deletions

42
README.md Normal file
View file

@ -0,0 +1,42 @@
# jira-docker
docker-compose for jira including letsencrypt auto renewal https
# Description
With this project you can easily run jira-software inside one docker-compose including https.
# Prerequisite
* Docker needs to be installed
# Usage
## Set env variables
```
export JIRA_MYSQL_ROOT_PASSWORD=__ROOT_PASSWORD__ # e.g. supersecret
export JIRA_MYSQL_DATABASE=jiradb
export JIRA_MYSQL_USER=jiradbuser
export JIRA_MYSQL_PASSWORD=__JIRAUSER_PASSWORD__ # e.g. 12345
export JIRA_HOST=__YOUR_HOSTNAME__ # e.g. jira.example.com
export JIRA_EMAIL=__EMAIL___ # e.g. admin@jira.example.com
```
## Update dbconfig.xml
Replace
* JIRA_MYSQL_USER and
* JIRA_MYSQL_PASSWORD
with the correct username and password like in the env variables
## Start it
* docker-compose up
# Contact us
If you need more information feel free to contact us
[https://froso.de](https://froso.de)

24
dbconfig.xml Executable file
View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>mysql</database-type>
<jdbc-datasource>
<url>jdbc:mysql://mysql:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=default_storage_engine=InnoDB</url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<username>JIRA_MYSQL_USER</username>
<password>JIRA_MYSQL_PASSWORD</password>
<pool-min-size>20</pool-min-size>
<pool-max-size>20</pool-max-size>
<pool-max-wait>30000</pool-max-wait>
<validation-query>select 1</validation-query>
<min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
<time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
<pool-max-idle>20</pool-max-idle>
<pool-remove-abandoned>true</pool-remove-abandoned>
<pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
<pool-test-while-idle>true</pool-test-while-idle>
<validation-query-timeout>3</validation-query-timeout>
</jdbc-datasource>
</jira-database-config>

91
docker-compose.yaml Normal file
View file

@ -0,0 +1,91 @@
version: '3'
# help for backup and importing
# export
# mysql: mysqldump -u jiradbuser -p --opt --single-transaction jiradb > "/home/server/jira-backup-sql.sql"
# tar -zcf /home/server/jira-back-var-application-data.tar.gz /var/atlassian/application-data/jira/data &>/dev/null
# import
# docker-compose up mysql
# docker cp ./jira-backup-sql.sql mysql:/
# docker exec -it mysql bash
# mysql -u root -p jiradb < /jira-backup-sql.sql
# docker-compose up jira
# docker cp jira-backup-data.zip jira:/
# docker exec -it jira bash
# unzip /jira-backup-data.zip -d /var/atlassian/jira/
# install add-ons "Tempo"
# configure look and feel again
services:
jira:
depends_on:
- mysql
container_name: jira
restart: always
image: cptactionhank/atlassian-jira-software:7.13.0
environment:
- VIRTUAL_HOST=${JIRA_HOST}
- LETSENCRYPT_HOST=${JIRA_HOST}
- LETSENCRYPT_EMAIL=${JIRA_EMAIL}
ports:
- '8080:8080'
volumes:
- jira-data:/var/atlassian/jira # JIRA_HOME
- ./dbconfig.xml:/var/atlassian/jira/dbconfig.xml
networks:
jira-network:
mysql:
container_name: mysql
restart: always
image: mysql:5
environment:
- NETWORK_ACCESS=internal
environment:
- MYSQL_ROOT_PASSWORD="${JIRA_MYSQL_ROOT_PASSWORD}"
- MYSQL_DATABASE="${JIRA_MYSQL_DATABASE}" # this database will be created on image startup
- MYSQL_USER="${JIRA_MYSQL_USER}" # this user will be granted superuser permissions on MYSQL_DATABASE
- MYSQL_PASSWORD="${JIRA_MYSQL_PASSWORD}"
volumes:
- mysql-data:/var/lib/mysql
networks:
jira-network:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- "80:80"
- "443:443"
labels:
- "com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- nginx-vhost.d:/etc/nginx/vhost.d
- nginx-vhost.d:/usr/share/nginx/html
- nginx-certs:/etc/nginx/certs:ro
networks:
- jira-network
restart: always
letsencrypt:
image: jrcs/letsencrypt-nginx-proxy-companion
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- nginx-certs:/etc/nginx/certs:rw
- nginx-vhost.d:/etc/nginx/vhost.d
- nginx-vhost.d:/usr/share/nginx/html
networks:
- jira-network
restart: always
networks:
jira-network:
driver: bridge
volumes:
jira-data:
mysql-data:
nginx-vhost.d:
nginx-share.html:
nginx-certs: